vim 모드에서 자주 사용하는 단축키를 알아보자.
Goal
- vim의 단축키 사용법에 대해 이해한다.
- 이동
- 편집 (삽입, 삭제, 수정, 복사, 붙여넣기 등)
- 선택
- 검색
- 기타 (매크로, 이어 붙이기, 취소하기/되돌리기 및 들여쓰기/내어쓰기, 대소문자 전환, 숫자 증감, 창 열기/탭 이동 등 )
이동
기본 이동
- h, j, k, l: 좌,하,상,우 커서 이동
- -: 줄의 처음 위치로 커서 이동
- gg: 맨 위로 커서 이동
- [shift + g]: 맨 아래로 커서 이동
단어 단위로 이동
- w: 단어의 시작 위치로 커서 이동 (forward 방향)
- Ex. 3w: 세 단어 앞으로 커서 이동
- e: 단어의 마지막 위치로 커서 이동 (forward 방향)
- b: 단어의 시작 위치로 커서 이동 (backward 방향)
- ge: 단어의 마지막 위치로 커서 이동 (backward 방향)
한 문장 내에서의 이동
- 0(숫자): 라인 맨 앞으로 커서 이동
- ^: 문장 맨 앞으로 커서 이동
- $: 문장 맨 뒤로 커서 이동
대략적인 위치로 이동 (현재 보이는 페이지 기준)
- [shift + h]: 현재 보이는 페이지를 기준으로 맨 위로 커서 이동
- [shift + m]: 현재 보이는 페이지를 기준으로 중간 라인으로 커서 이동
- [shift + l]: 현재 보이는 페이지를 기준으로 맨 아래로 커서 이동
페이지 이동
- [ctrl+ f]: 다음 페이지의 첫 줄로 커서 이동
- [ctrl+ b]: 다음 페이지의 마지막 줄로 커서 이동
- [ctrl+ d]: 페이지의 절반 크기만큼 아래로 커서 이동
- [ctrl+ u]: 페이지의 절반 크기만큼 위로 커서 이동
원하는 줄 번호로 한 번에 이동
- 줄 번호 설정 및 해지
- [: + set number]: 줄 번호 설정
- [: + set nonumber]: 줄 번호 설정
- 방법1
- [esc] 를 눌러 표준 모드로 진입
- [:] 를 누른 후 원하는 [줄 번호] 입력
- 방법2
- [esc] 를 눌러 표준 모드로 진입
- 원하는 [줄 번호] 입력
- [shift + g] 입력
{}
(컬리 블레이스, Curly Brace) 을 기준으로 이동
- ]]:
{
로 커서 이동 (forward 방향)- 없으면 페이지의 맨 아래로 커서 이동
{
은 가장 상위의 블록을 감싸고 있는 문자만 찾는다.
- [[:
{
로 커서 이동 (backward 방향) - ][:
}
로 커서 이동 (forward 방향)- 없으면 페이지의 맨 위로 커서 이동
}
은 가장 상위의 블록을 감싸고 있는 문자만 찾는다.
- []:
}
로 커서 이동 (backward 방향) - %:
{}
나()
에서 현재 괄호의 짝으로 커서 이동
편집
삽입 관련 단축키 (입력 가능한 상태로 변경)
- i: 현재 커서가 위치한 문자의 앞에 Insert 하기
-
I: 현재 커서가 위치한 줄 맨 앞에 Insert 하기
- a: 현재 커서가 위치한 문자의 뒤에 Insert 하기
-
A: 현재 커서가 위치한 줄 맨 뒤에 Insert 하기
- O: 현재 커서가 위치한 줄 바로 윗줄에 Insert 하기
- o: 현재 커서가 위치한 줄 바로 아랫줄에 Insert 하기
삭제/잘라내기 및 수정 관련 단축키
- dd: 커서가 위치한 줄 잘라내기
- dw: 커서가 위치한 곳부터 단어의 마지막까지 잘라내기
- Ex. 숫자 + dd: 커서가 위치한 줄부터 숫자에 해당하는 수만큼의 줄 잘라내기
-
[shift + d]: 현재 커서의 위치부터 줄의 끝까지 잘라내기
- x: 커서가 위치한 문자 잘라내기
-
[shift + x]: 커서가 위치한 문자 바로 앞에 있는 문자 잘라내기
- s: 커서가 위치한 문자 잘라내고 Insert 하기
- cc 또는 [shift + s]: 커서가 위치한 줄 전체 잘라내고 Insert 하기
- cw: 커서가 위치한 곳부터 단어의 마지막까지 잘라내고 Insert 하기
-
[shift + c]: 현재 커서의 위치부터 줄의 끝까지 잘라내고 Insert 하기
- [r + 변경할 문자]: 커서가 위치한 문자 하나 수정하기
- Ex. 4rx: 현재 커서 이후 4개의 글자를 “x”로 수정한다.
복사/붙여넣기 관련 단축키
- yl: 현재 커서가 위치한 문자 하나만 복사하기
- Ex. 3yl: 현재 커서 이후 3개의 문자를 복사한다.
- yy: 현재 커서가 위치한 줄 복사하기
- yw: 현재 커서의 위치부터 단어가 끝나는 위치까지 복사하기
- y: 블럭 단위로 체크한 내용(비주얼 모드 이용) 복사하기 - 한 문자만 복사 X
- Ex. 숫자 + y: 커서가 위치한 줄부터 숫자에 해당하는 수만큼의 줄 복사하기
- Ex. y$: 커서가 위치한 곳부터 줄의 마지막까지 복사하기
- p:
- 단어 복사: 현재 커서가 위치한 바로 다음 위치에 붙여넣기
- 행 복사: 현재 커서가 위치한 줄 바로 아랫줄에 붙여넣기
- [shift + p]:
- 단어 복사: 현재 커서가 위치한 바로 앞 위치에 붙여넣기
- 행 복사: 현재 커서가 위치한 줄 바로 윗줄에 붙여넣기
- 숫자 + p: 해당 숫자 만큼 붙여넣기를 반복하기
선택
한 줄 선택
- [shift + v]: 라인 단위로 블럭지정이 가능하다.
단어 단위로 여러 줄 선택
- [esc] 를 눌러 표준 모드로 진입
- v 를 눌러 여러 줄을 선택할 수 있는 상태를 만든다.
- v: 단어 단위
- [shift + v]: 라인 단위
멀티 포커스
- [ctrl + v]: 블럭 단위로 여러 줄 선택. 즉, 사각형의 블럭지정이 가능하다.
검색
- / + 찾을 단어 + Enter: 문서에서 단어 찾기
- n 또는 *: 다음 찾기 (forward 방향)
- N 또는 #: 이전 찾기 (backward 방향)
기타
매크로
추가 예정
다음 줄을 현재 커서가 있는 줄의 끝으로 이어 붙이기
- [shift + j]: 다음 줄을 현재 커서가 있는 줄의 끝으로 이어 붙인다.
취소하기/되돌리기 및 들여쓰기/내어쓰기
- u: Undo, 이전으로 취소하기
- [ctrl + r]: Redo, 취소한 것을 다시 되돌리기
- > 2번 클릭: 들여쓰기
- >}: 한 문단 전체를 들여쓰기
- Ex. 2»: 2번 들여쓰기
- < 2번 클릭: 내어쓰기
- .: - 이전 명령어를 다시 실행
대소문자 전환
- [shift + ~]: 현재 커서가 위치한 문자의 대소문자를 변경한다.
숫자 증감
- [ctrl + a]: 현재 커서가 위치한 하나의 문자가 숫자라면 해당 명령어로 숫자를 증가시킬 수 있다.
- [ctrl + x]: 현재 커서가 위치한 하나의 문자가 숫자라면 해당 명령어로 숫자를 감소시킬 수 있다.
창 열기/탭 이동 등
- [: + vs]: 현재의 창을 세로로 분할된 창으로 하나 더 열기
- [: + new]: 새 창을 현재의 창 아래(세로로)에 분할된 창으로 열기
- [: + tabnew]: 새 창을 현재의 창과 같은 위치에 열기
-
[ctrl + w] 2번 클릭: 분할 창 간에 이동
- [gt]: 오른쪽 탭으로 이동
- [gT]: 왼쪽 탭으로 이동
코드 형식 관련
- zc: 코드 접기 (fold)
-
zM: 코드 모두 접기 (fold)
- zo: 접힌 코드 펼치기
-
zR: 접힌 코드 모두 펼치기
- zd: fold 지우기
- zD: 모든 fold 지우기
관련된 Post
- IntelliJ에서 유용한 단축키에 대해 알고 싶으시면 IntelliJ 유용한 단축키 정리를 참고하시기 바랍니다.