왜 화살표 키 대신 h j k l 인가
화살표 키는 키보드 구석에 있어. 오른손이 홈 row를 떠나서, 더듬어 찾고, 누르고, 다시 돌아와야 해. h j k l은 이미 오른손 밑에 깔려 있고. 첫날엔 어색한데, 사흘째가 되면 화살표 키가 돌아가는 길처럼 느껴져.
이 배치는 1976년 ADM-3A 터미널에서 왔어. vi를 만들던 시절 그 키보드에는 h j k l 자리에 화살표가 같이 새겨져 있었거든. 관습이 살아남은 건 역사가 유서 깊어서가 아니라 손에 더 잘 맞아서야.
글자 단위 이동
h, j, k, l이 왼쪽, 아래, 위, 오른쪽이야. j가 아래인 건 글자 꼬리가 아래로 내려가서고, k가 위인 건 획이 위로 솟아서야. 이 퀘스트는 이런 식의 연상법으로 가득해.
단어 단위 이동 — 첫 번째 속도 도약
글자 단위로 콩콩 뛰는 건 미세한 편집엔 좋지만, 평소엔 단어 단위로 건너뛰고 싶어져. w는 다음 단어의 시작, e는 지금(또는 다음) 단어의 끝, b는 앞 단어의 시작이야.
소문자는 punctuation에서도 멈춰. hello-world를 세 단어로 본다는 뜻이야. 대문자 (W E B) 는 whitespace에서만 멈추니까 같은 문자열이 통째로 한 WORD가 되고. 둘 다 자주 쓰게 돼.
줄 단위 이동
0은 줄 맨 앞, ^은 공백이 아닌 첫 글자 (보통 이쪽을 원해), $는 줄 끝이야. 키보드 숫자 줄을 떠올려 봐. 0은 제일 왼쪽에 있고 $는 오른쪽 4 위에 얹혀 있잖아. 이것도 눈으로 외우는 연상법이야.
파일 단위 이동
gg는 첫 줄, G는 마지막 줄이야. :42면 42번째 줄로 가고 (42G도 같아). Ctrl-d와 Ctrl-u는 반 페이지씩 아래위로, Ctrl-f와 Ctrl-b는 한 페이지씩 움직여.
5j면 다섯 줄 아래, 3w면 세 단어 앞, 10l이면 열 글자 오른쪽이야. 트랙 4의 set relativenumber랑 같이 쓰면 gutter에 적힌 숫자를 그대로 읽어서 원하는 자리로 정확히 뛸 수 있어.