Insert mode로 들어가는 길이 여덟 개나 되는 이유
Vim에는 "타이핑 시작" 키가 하나만 있는 게 아니야. 비슷한 키가 한 무리 있고, 저마다 커서를 다른 자리에 놔줘. i랑 a의 차이는 사소해 보이지만, 1년쯤 편집하다 보면 아낀 motion이 수천 번으로 쌓여.
여덟 개의 입구
i— 커서 앞에 넣기.a— 커서 뒤에 붙이기 ("append").I— 줄에서 공백이 아닌 첫 글자 앞에 넣기.A— 줄 끝에 붙이기.o— 아래에 새 줄을 열고 타이핑 시작.O— 위에 새 줄을 열고 타이핑 시작.s— 커서 위 글자를 지우고 타이핑 시작.S— 줄 전체를 지우고 타이핑 시작.
Normal mode로 돌아가기
정통 출구는 Esc야. Ctrl-[도 완전히 똑같고, 키보드 대부분에서 홈 row에 더 가까워. Ctrl-c로도 나가지는데 이건 abbreviation 확장을 건너뛰어 — Insert mode용 abbreviation을 만들어놨는데 이번엔 발동시키기 싫을 때 쓸모가 있어.
제일 사랑받는 매핑: Insert mode에서
jj나 jk를 Esc에 매핑하는 거야. 구석까지 손을 뻗는 대신 홈 row에 붙어 있는 두 키로 끝나거든. 진짜 코드에서 jj를 칠 일은 거의 없으니까 잘못 걸릴 걱정도 없어.생각보다 훨씬 중요한 이유
A;랑 $a;는 한 키 차이야. o랑 $a<Enter>는 두 키 차이고. 이게 하루에 수천 번 일어나. Vim이 빨라 보이는 건 무슨 대단한 트릭 하나 때문이 아니야. 자주 하는 동작이란 동작은 전부 설계 단계부터 키 하나짜리 입구를 갖고 있어서야.