왜 화살표 키 대신 h j k l 인가
화살표 키는 키보드 코너에 있어. 오른손이 홈 row 를 떠나서, 찾아서, 이동하고, 돌아와야 해. h j k l 은 이미 오른손 밑에 있어. 첫날엔 이상하지만, 3 일째엔 화살표 키가 우회로 같아져.
Vim 은 1976 년 ADM-3A 터미널에서 디자인됐는데, 그 키보드의 그 글자들에 화살표 아이콘이 그려져 있었어. 컨벤션이 살아남은 건 역사적 이유가 아니라 기계적으로 우수해서야.
캐릭터 이동
h, j, k, l 은 왼쪽, 아래, 위, 오른쪽. j 가 아래인 건 descender 가 있어서, k 가 위인 건 ascender 가 있어서. 퀘스트 전체가 이런 mnemonic 사고들로 가득해.
단어 이동 — 첫 큰 속도 향상
캐릭터 단위로 깡총깡총 뛰는 건 fine-grained 편집엔 좋지만, 대부분은 단어 단위로 점프하고 싶어. w 는 다음 단어 시작, e 는 현재(또는 다음) 단어 끝, b 는 이전 단어 시작.
소문자는 punctuation 에서 멈춰: hello-world 를 세 단어로 봐. 대문자 (W E B) 는 whitespace 에서만 멈춰: 같은 문자열이 한 WORD. 둘 다 자주 써.
라인 이동
0 은 라인 시작; ^ 은 첫 non-blank 캐릭터 (보통 원하는 거); $ 는 끝. 키보드 숫자 행 상상해 — 0 은 가장 왼쪽, $ 는 오른쪽 4 위. 또 visual mnemonic.
파일 단위 이동
gg 는 첫 라인; G 는 마지막 라인. :42 는 42 라인 (42G 도 동일). Ctrl-d 와 Ctrl-u 는 반 페이지 아래/위; Ctrl-f 와 Ctrl-b 는 한 페이지.
5j 다섯 라인 아래, 3w 세 단어 앞, 10l 열 캐릭터 오른쪽. 트랙 4 의 set relativenumber 와 짝지으면, gutter 에서 숫자 읽어서 정확한 타깃으로 점프할 수 있어.