오늘은 알고 있으면 유용한 Vim 단축키에 대해서 정리를 할 예정이다.
모른다고 해서 안될 건 없지만 기왕 Vim 사용하는 거 더 효율적으로 쓸 수 있게 만들어 준다고 생각한다.
Vim 이동
기본 이동
- h, j, k, l : 좌, 하, 상, 우 커서 이동
- - : 줄의 처음 위치로 커서 이동
- gg : 맨 위로 커서 이동
- shift + g : 맨 아래로 커서 이동
단어 단위로 이동
- w : 단어의 시작 위치로 커서 이동 (오른쪽 방향)
- b : 단어의 시작 위치로 커서 이동 (왼쪽 방향)
- e : 단어의 마지막 위치로 커서 이동 (오른쪽 방향)
- ge : 단어의 마지막 위치로 커서 이동 (왼쪽 방향)
한 문장 내에서 이동
- 0 (숫자) : 라인 맨 앞으로 커서 이동
- ^ : 문장 맨 앞으로 커서 이동
- $ : 문장 맨 뒤로 커서 이동
현재 페이지에서의 이동
- shift + h : 현재 보이는 페이지에서 커서를 맨 위로 이동
- shift + m : 현재 보이는 페이지에서 커서를 중간 위치로 이동
- shift + l : 현재 보이는 페이지에서 커서를 맨 아래로 이동
페이지 이동
- ctrl + f : 다음 페이지의 첫 줄로 커서 이동
- ctrl + b : 다음 페이지의 마지막 줄로 커서 이동
- ctrl + u : 페이지의 절반 크기만큼 위로 커서 이동
- ctrl + d : 페이지의 절반 크기만큼 아래로 커서 이동
원하는 줄 위치로 이동
- 줄 번호 on/off 설정
on -> [:set number/ :set nu]
off -> [:set nonumber/ :set nonu]
- 방법 1
1. esc 눌러서 명령 모드로 이동
2. : + 이동하고 싶은 줄 번호 입력
- 방법 2
1. esc 눌러서 명령 모드로 이동
2. 이동할 줄 번호 입력
3. shift + g 입력
{}을 기준으로 이동
- ]] :
{
로 커서 이동 (오른쪽 방향) - 없으면 페이지 맨 아래로 커서 이동
- [[ :
{
로 커서 이동 (왼쪽 방향)
- ][ :
}
로 커서 이동 (오른쪽 방향) - 없으면 페이지 맨 아래로 커서 이동
- [] :
}
로 커서 이동 (왼쪽 방향)
- % :
{}, ()
에서 현재 괄호의 짝을 찾아 커서 이동
Vim 선택
문자 단위로 선택
줄 단위 선택
- shift + v : 줄 단위로 블럭지정이 가능하다
Vim 편집
삭제, 잘라내기, 수정에 관한 단축키
- dd : 커서가 위치한 줄 잘라내기
- 숫자 + dd : 커서가 위치한 줄부터 숫자의 줄 만큼 잘라내기
- dw : 커서가 위치한 곳 부터 단어의 마지막까지 잘라내기
- shift + d : 현재 커서의 위치부터 줄의 끝까지 잘라내기
- x : 커서가 위치한 문자 잘라내기 (delete 느낌의 단축키)
- shift + x : 커서가 위한 문자 잘라내기 (backspace 느낌의 단축키)
- s : 커서가 위치한 문자 잘라내고 Insert 모드로 변환
- cc, shift + s : 커서가 위치한 줄 전체 잘라내고 Insert 모드로 변환
- cw : 커서가 위치한 곳부터 단어의 마지막까지 잘라내고 Insert 모드로 변환
- shift + c : 현재 커서의 위치부터 줄 마지막까지 잘라내고 Insert 모드로 변환
- r + 변경할 문자 : 현재 커서의 문자를 변경
복붙 관련 단축키
- yl : 현재 커서가 위치한 문자 하나만 복사
- yy : 현재 커서가 위치한 줄 복사
- yw : 현재 커서의 위치부터 단어의 마지막까지 복사
- y :
i. 숫자 + y : 현재 커서의 줄부터 숫자만큼 줄 복사
ii. y$ : 현재 커서의 위치부터 줄의 끝까지 복사
- p :
i. 단어 복사 했을 경우 : 현재 커서 다음 위치에 붙여넣기
ii. 줄 복사 했을 경우 : 현재 커서 아랫줄에 붙여넣기
- shift + p :
i. 단어 복사 했을 경우 : 현재 커서 위치에 붙여넣기
ii. 줄 복사 했을 경우 : 현재 커서 윗줄에 붙여넣기
- 숫자 + p : 숫자만큼 붙여넣기 반복
Vim 검색
- / + 찾을 단어 : 문서에서 단어 찾기
i. n 또는 * : 다음 찾기
ii. N 또는 # : 이전 찾기
기타
다음 줄을 현재 커서의 줄 뒤로 붙이기
- shift + j : 다음 줄을 현재 커서의 줄 뒤로 이어 붙인다
대소문자 전환
- shift + ~ : 현재 커서의 문자의 대소를 전환한다.
창 열기, 탭 이동
- : + vs : 현재 창을 세로로 분할된 창으로 열기
- : + new : 새 창을 현재 창 위에 분할된 창으로 열기
- ctrl + w 2번 누르기 : 분할된 창 간에 이동
- : + tabnew : 새 창을 탭으로 열기
- gt : 오른쪽 탭으로 이동
- gT : 왼쪽 탭으로 이동
취소하기, 되돌리기
- u : 이전으로 취소하기
- ctrl + r : 이전으로 취소한걸 다시 되돌리기
명령어 다시 실행하기
코드 접기, 펼치기
- zc : 코드 접기 (fold)
- zM : 코드 모두 접기 (fold)
- zo : 접힌 코드 펼치기
- zR : 접힌 코드 모두 펼치기
- zd : fold 지우기
- zD : 모든 fold 지우기
회고
이 외에도 되게 다양한 단축키들이 있지만 일단은 이정도만 외울 것이다.
여기 있는 단축키들을 보지 않고 쓱쓱 사용할 수 있다면, 다른 단축키들도 필요가 느껴진다면 더 외울 예정이다.
효과적으로 외우기 위해 앞으로 코드를 vim으로 작성해 봐야겠다. 계속 사용하다보면 나도 모르게 익숙해져서 쓸 수 있을 것 같다.