유닉스의 기본 편집기인 VI 에디터를 개량한 버전이, 바로 VIM (빔) 에디터입니다.
따라서 본질적인 차이는 없습니다.
VIM 은, "Vi IMproved (향상된 Vi)"의 약자입니다.
1976년에 빌 조이가 VI 편집기를 만들었습니다.
vi라는 이름은 한 줄씩 편집하는 줄단위 편집기가 아니라 한 화면을 편집하는 비주얼 에디터(visual editor)라는 뜻에서 유래했습니다.
간결하면서도 강력한 기능으로 사용자가 많습니다.
리눅스에는 vim 에디터만 설치되어 있습니다.
소문자로 vi 라고 치면 vim 이 실행되고, vim 이라고 쳐도 vim 이 실행됩니다.
리눅스에서는 vi를 쓸지 vim을 쓸지 고민하지 않아도 됩니다. 둘다 똑같은 것입니다.
vim 안에는 vi 의 기능들도 다 포함되어 있기에, 유닉스를 다룬다고 하더라도 vi 를 따로 익힐 필요는 없습니다.
삽입
키기능
i | 커서 위치에 Insert |
I | 줄 맨 앞에서 Insert |
a | 커서 다음에 Insert |
A | 줄 맨 뒤에서 Insert |
o | 커서 아래로 한 줄 띄우고 Insert |
O | 커서 위로 한 줄 띄우고 Insert |
i / a / o 를 누르면 -- INSERT -- 모드로 변경돼서 입력이 가능하다.
이동
키기능
개인적으로 많이 쓰는 이동키는 {} 와 :$ / :^ 이다.
그리고 전체 삭제할 땐 :1,$d를 누르면 해당 파일의 전체 내용이 삭제된다.
w | 단어 첫 글자 기준으로 다음으로 이동 |
W | 공백 기준으로 다음(단어의 시작)으로 이동 |
b | 단어 첫 글자 기준으로 이전으로 이동 |
B | 공백 기준으로 이전으로 이동 |
e | 단어 마지막 글자 기준으로 다음으로 이동 |
E | 공백 기준으로 다음(단어의 끝)으로 이동 |
gg | 문서 맨 앞으로 이동 |
G | 문서 맨 아래로 이동 |
^ | 문장 맨 앞으로 이동 |
$ | 문장 맨 뒤로 이동 |
{ | 띄어쓰기가 있는 문단의 맨 앞으로 이동 |
} | 띄어쓰기가 있는 문단의 맨 뒤로 이동 |
참고사항 : vi 편집기가 아닌 커맨드라인(명령줄)에서
맨 앞으로 가고 싶을 땐 ctrl + a (append)
맨 뒤로 가고 싶을 땐 ctrl + e (end)
검색
:/단어 = 검색할 단어를 검색, `n`과 `N`으로 다음/이전 찾기
:se nu = 코드 줄 번호를 볼 수 있다. (set number의 약자로 se nu라고만 입력해도 줄 번호를 볼 수 있다.)
:se nonu = set number 모드를 취소할 수 있다.
ex) :3 = 3번째 줄로 커서를 이동시킬 수 있다.
편집
키기능 = 복사, 붙여넣기, 잘라내기 할 때 유용하다.
ex) 만약 잘 못 삭제한 코드가 있다면 u를 입력해서 되돌리기가 가능하다.
5줄을 동시에 복사할 땐 5y를 하면 5줄이 복사되고 붙여넣고 싶은 줄에 p를 입력하면 5줄이 복사된다.
dd | 현재 줄 잘라내기 |
yy | 현재 줄 복사하기 |
p | 붙여넣기 |
u | 실행취소 (Undo) |
ctrl + r | 재실행 (Redo) |
v | Visual모드 |
y | 복사 |
c | 잘라내기 |
저장
키기능 : 코드 수정 후에 저장 또는 저장하지 않고 닫기를 해야 한다.
:w | 저장 |
:q | 닫기 |
:q! | 저장하지 않고 닫기 |
:wq | 저장하고 닫기 |
:숫자 | 지정한 줄 번호로 이동 |
h, j, k, l - 좌,하,상,우 커서이동
i - 현재 커서 위치에 Insert 하기
I - 현재 줄 맨앞에 Insert 하기
a - 현재 커서 다음칸에 Insert 하기
A - 현재 줄 맨뒤에 Insert 하기
O - 윗줄에 Insert 하기
o - 아랫줄에 Insert 하기
w - 단어 첫글자로 이동하기
W - 화이트스페이스 단위로 다음 글자로 이동하기
b - 백워드 방향으로 단어의 첫글자로 이동하기
B- 백워드 방향으로 화이트스페이스 단위로 다음 글자로 이동하기
e - 단어의 마지막 글자로 이동하기
ge - 백워드 방향으로 단어의 마지막 글자로 이동하기
gg - 문서 맨 앞으로 이동
G - 문서 맨끝으로 이동
^ - 문장 맨 앞으로 이동
0 - 라인 맨 앞으로 이동
$ - 문장 맨 뒤로 이동
f문자 - 문자의 위치로 이동 ; 를 누르면 계속 이동
F문자 - 백워드로 문자의 위치로 이동
t문자 - 문자의 앞위치로 이동
T문자 - 백워드방향으로 문자의 앞위치로 이동
/단어 - 문서에서 단어 찾기 n이나 N으로 다음/이전 찾기
* - 현재 단어를 포워드 방향으로 찾기
# - 현재 단어를 백워드 방향으로 찾기
Ctrl + f - 다음 페이지 이동
Ctrl + b - 이전 페이지 이동
Ctrl + u - 페이지절반만큼 다음으로 이동
Ctrl + d - 페이지절반만큼 이전으로 이동
H - 현재 화면의 맨 위라인으로 이동
M - 현재 화면의 중간 라인으로 이동
L - 현재 화면의 마지막 라인으로 이동
]] - 포워드 방향으로 여는 컬리 블레이스( { )로 이동
[[ - 백워드 방향으로 여는 컬리 블레이스( { )로 이동
][ - 포워드 방향으로 닫는 컬리 블레이스( { )로 이동
[] - 백워드 방향으로 닫는 컬리 블레이스( { )로 이동
% - {}나 ()에서 현재 괄호의 짝으로 이동
dd - 현재 줄 잘라내기
dw - 단어 잘라내기
yy - 현재 줄 복사하기
p - 붙혀넣기
r - 현재 글자 교체하기
u - Undo
Ctrl + R : Redo
x - 현재 글자 지우기
X - 앞의 글자 지우기
> - 들여쓰기
< - 내어쓰기
. - 이전 명령어를 다시 실행
v - 비쥬얼모드(비쥬얼 모드에서 커서 이동해서 블럭지정 가능)
y - 복사하기
c - 잘라내기
cw - 단어 잘라내기
J - 다음 라인을 현재 줄의 끝으로 이어 붙힘
~ : 선택 문자 대소문자 변경
Ctrl + A : 숫자를 증가시키기
Ctrl + X : 숫자를 감소시키기
:w - 문서 저장하기
:q - 현재 문서 닫기
:q! - 저장하지 않고 닫기
:wq - 저장하고 닫기
:숫자 - 지정한 라인넘버로 이동
:new - 가로로 분할된 창 열기
:vs - 세로로 분할된 창 열기
Ctrl + w - 분할창 간에 이동하기
:tabnew - 새로운 탭 열기
:gt - 다음 탭으로 이동하기
:gT - 이전 탭으로 이동하기
:e ./ - 현재 탭에 오픈할 파일 탐색하기( ./ 는 현재위치에서 탐색 시작)
:colorscheme 스키마명 - VIM의 칼라스키마를 변경함(blue, desert, evening 등.. 스키마명에서 탭누르면 자동완성됨)
zc - 코드 접기(fold)
zo - 접힌 코드 펼치기
zd - fold 지우기
zR - 접힌 코드 모두 펼치기
zM - 코드 모두 접기
zD - 모든 fold 지우기
:buffers - 현재 Vim에서 여러 파일을 열었을때 버퍼에 있는 목록 확인
:buffer 숫자 - 버퍼 목록에 나온 숫자를 입력하면 해당 파일을 오픈함 ( :buffer 대신 :b 도 가능)
:bnext - 버퍼에 있는 다음 파일로 이동 ( :bn 도 가능)
:bprevious - 버퍼에 있는 이전 파일로 이동 ( :bp 도 가능)
:ball - 버퍼 목록에 있는 파일들이 가로로 분할된 창에 열림
참고
https://wayhome25.github.io/etc/2017/03/27/vi/
https://velog.io/@courage331/Vim%EA%B3%BC-Vi-%EC%B0%A8%EC%9D%B4
'주요 개념 > 리눅스' 카테고리의 다른 글
Linux 리눅스 프로세스 확인 명령어(ps, ps -ef, grep) (0) | 2023.11.18 |
---|---|
VMware Centos7 Nginx 설치하기 (0) | 2023.11.13 |
사용자 계정 (0) | 2023.06.14 |