Intro
Vim에서 커서 이동은 어떻게 할까? 단, 마우스는 사용할 수 없다. 너무나 허무하게도 Vim 역시 일반적인 에디터와 같이 화살표 방향키를 사용하면 된다. 그러나 Vim만의 특별한 Mapping이 있으며, 마우스를 사용할 수 없는 환경을 위해 다양한 이동 명령어가 준비되어 있다. 하나씩 짚어보도록 하자.
Navigation Command
우선 일반적인 이동 명령어를 살펴보자. 일반적인 에디터에서 사용하는 화살표 방향키와 어떤 명령어가 매핑되는지 정리했다.
Command | Description |
h | ⬅ |
j | ⬇ |
k | ⬆ |
l | ➡ |
신기한 매핑이다. 일반적으로 윈도우에 익숙한 사용자는 새로운 키배열에 적응하기 쉽지 않다. 꼭 저 배열을 사용할 필요는 없다. Vim도 화살표 방향키를 지원한다. 그러나 Vim만의 키 매핑은 손이 키보드의 중심에서 벗어나지 않고 이동 가능하게 해 준다. 익숙해진다면 작업의 효율이 올라갈 수 있다.
Additional Navigation Command
화살표 방향키를 제외하고도 일반적으로 에디터를 사용할 때 우리는 더 많은 키를 사용한다. 대표적으로 'HOME', 'END', 'PG UP', 'PG DOWN' 등이 있다. 각각의 기능에 대한 설명은 생략하겠다. 심지어 Vim은 마우스를 사용하지 않는 환경을 고려한다. 즉, 단순히 문서 처음과 끝만 아니라 특정 위치의 행으로의 이동 등도 고려해야 한다. 기본적인 이동 명령어 외에 커서 이동을 보조할 수 있는 명령어들에 대해 아래 정리해봤다.
Command | Description | Command | Description |
w or W | 다음 단어의 첫 글자로 이동 | b or B | 이전 단어의 첫 글자로 이동 |
e or E | 단어의 마지막 글자로 이동 | <CR> or Enter | 다음 행의 첫 글자로 이동 |
^ | 그 행의 첫 글자로 이동 | $ | 그 행의 마지막 글자로 이동 |
+ | 다음 행의 첫 글자로 이동 | - | 위 행의 첫 글자로 이동 |
( | 이전 문장의 첫 글자로 이동 | ) | 다음 문장의 첫 글자로 이동 |
{ | 이전 문단으로 이동 | } | 다음 문단으로 이동 |
H | 커서를 화면의 맨 위로 이동 | z<CR> or z + Enter | 현행을 화면 맨 위로 이동 |
M | 커서를 화면의 중앙으로 이동 | z. | 현행을 화면 중앙으로 이동 |
L | 커서를 화면 최하단으로 이동 | z- | 현행을 화면 최하단으로 이동 |
[n]H | 커서를 위에서 n행으로 이동 | [n]L | 커서를 밑부터 n행으로 이동 |
Ctrl + u | 반 화면 위로 스크롤 | Ctrl + d | 반 화면 아래로 스크롤 |
Ctrl + b | 한 화면 위로 스크롤 | Ctrl + f | 한 화면 아래로 스크롤 |
gg or 1G | 문서의 맨 첫 행으로 이동 | G | 문서의 마지막 행으로 이동 |
[n]G | n행으로 이동 | :[n] | n행으로 이동 |
이 모든 명령어를 지금 당장 암기할 필요는 없다. Vim을 사용하다 필요성을 느낄 때 이 포스트로 들어와 필요한 기능을 찾는 것을 추천한다. 아래는 일반적인 윈도우 환경에서 사용하는 단축키와 매칭 되는 명령어들만 추렸으니 우선적으로 살펴보자.
Windows[Notepad/Notepad++/etc] | Linux[Vi/Vim] |
HOME | ^ |
END | $ |
PG UP | Ctrl + b |
PG DOWN | Ctrl + f |
Ctrl + HOME | gg or 1G |
Ctrl + END | G |
Next
이번 포스트에서는 이동과 관련된 명령어들을 다뤘다. 이제 점점 일반적인 에디터처럼 Vim을 사용할 수 있겠다는 생각이 들기 시작한다. 다음 포스트에서는 개발자들의 영혼의 단짝 Ctrl + c, Ctrl + v 역할을 하는 복사, 붙여 넣기를 비롯해 마우스를 이용한 드래그 기능을 Vim에서는 어떻게 구현하는지, delete, backspace 등 삭제는 어떻게 사용할 수 있는지를 다룰 것이다.