vim 명령어
먼저 vim이란 텍스트 편집기이며 파일을 편집할 때 사용하는 만큼 다양한 명령어들에 대해서 알고 있어야 유의미한 활용이 가능하다.
vim은 모드마다 수행할 수 있는 동작들이 구분되며 vim을 사용해서 파일을 열게 되면 일반 모드로 시작하게 된다.
일반 모드
텍스트를 수정할 수 없으며 커서 이동, 삭제, 복사, 붙여 넣기 등의 명령을 실행할 수 있다.
커서 위치를 기준으로 동작하는 명령어들이 있는데 커서 위치는 방향키로 이동할 수 있다.
x : 커서 위치의 문자 하나 삭제
dd : 현재 줄 삭제
d$ : 커서부터 현재 행의 끝까지 삭제
d0 : 커서부터 현재 행의 시작까지 삭제
d{motion} : {motion}이 가리키는 텍스트를 삭제 ({motion}은 이동 명령어)
ex) dw는 단어 삭제
yy : 현재 줄 복사
y {motion} : {motion}이 가리키는 텍스트 복사
ex) yw는 한 단어 복사
p : 복사한 텍스트를 커서 뒤에 붙여 넣기
P : 복사한 텍스트를 커서 앞에 붙여 넣기
u : 마지막 변경 취소 (undo)
Ctrl + r : 마지막 취소 작업 복구 (redo)
입력 모드
텍스트를 수정할 수 있는 상태로 진입한다. esc로 일반모드 전환할 수 있다.
i : 커서 앞에 텍스트 입력 시작
I : 현재 행의 맨 앞에서 입력 시작
a : 커서 뒤에서 텍스트 입력 시작
A : 현재 행의 맨 끝에서 입력 시작
o : 다음 줄에 새 행을 추가하고 입력 모드로 전환
O : 현재 줄 위에 새 행을 추가하고 입력 모드로 전환
h : 왼쪽으로 한 칸 이동
j : 아래로 한 줄 이동
k : 위로한 줄 이동
l : 오른쪽으로 한 칸 이동
w : 단어 단위로 앞으로 한 칸 이동
b : 단어 단위로 뒤로 한 칸 이동
0 : 현재 행의 시작으로 이동
$ : 현재 행의 끝으로 이동
gg : 파일의 첫 번째 줄로 이동
G : 파일의 마지막 줄로 이동
/검색어 : 파일 내에서 '검색어'를 검색, 다음 단어로 이동은 n
? 검색어 : 파일 내에서 '검색어'를 역방향으로 검색, 이전으로 이동은 N
ZZ : 저장하고 종료
명령모드
vim의 명령어를 입력할 수 있는 모드로 : 를 입력해 진입할 수 있다.
:{숫자} : 지정한 줄로 이동 (:10은 10번 줄로 이동)
:w :현재 파일 저장
:w filename : 다른 이름으로 파일 저장
:q : vim 종료, 저장되지 않은 변경 사항이 있으면 경고가 뜬다.
:q! : 저장하지 않고 종료
:wq : 저장하고 종료
:set number : 줄 번호 표시
:set nonumber : 줄 번호 숨기기
:set ignorecase : 대소문자 구분 없이 검색
:set noignorecase : 대소문자 구분하여 검색
:set autoindent : 자동 들여 쓰기 활성화 (현재 줄의 들여 쓰기를 자동으로 이전 줄의 들여쓰기와 맞춰주는 기능)
:set smartindent : 스마트 들여쓰기 활성화 (코드 구조에 따라 들여쓰기를 조정하는 기능)
:set paste : 붙여 넣기 모드 활성화 (들여쓰기가 깨지지 않도록)
:set nopaste : 붙여넣기 모드 비활성화
:help : vim 도움말 열기
:split or :sp : 수평 분할
:vsplit or :vsp : 수직 분할
이 외 이동명령
Ctrl + f : 한 페이지 아래로 이동
Ctrl + b : 한 페이지 위로 이동
Ctrl + d : 파일에서 절반 정도 아래로 이동
Ctrl + u : 파일에서 절반 정도 위로 이동
Ctrl + w, s : 창을 수평으로 나누고 커서 이동
Ctrl + w, v : 창을 수직으로 나누고 커서 이동
Ctrl + w, q : 분할된 창 닫기