Vim은 어디에나 있고, 안 사라져
Cursor, JetBrains, VS Code 천지인 시대에 왜 굳이 1991년에 처음 나온 에디터를 배워야 하지? 30년이 지나도 안 변한 세 가지 이유: 이미 깔려있다, 언어를 안 가린다, 손이 홈 row를 안 떠난다.
SSH로 어디 들어가든 Vim은 거기 있어
모든 Linux 서버는 Vim 또는 Vi를 기본으로 깔고 나와. 새벽 2시에 프로덕션 장애 디버깅을 빌려온 노트북에서 해야 할 때, 좋아하는 에디터를 깔 여유 같은 건 없어 — 박스에 깔린 걸 써야 돼. Vim은 공통분모인데 실제로 좋은 공통분모야.
예상 못한 곳에서 Vim이 튀어나와
git commit은 commit message 입력에 기본으로 Vim을 띄워.crontab -e는 cron job을 Vim으로 편집해.visudo는 sudoers 파일을 Vi로 편집해.kubectl edit, CI 스크립트의EDITOR=vim, Docker 컨테이너, 임베디드 시스템, 복구 셸, BSD 인스톨러 — Vim은 어딜 가도 있어.
키보드 only 편집이 주는 속도
Vim의 문법이 손에 박히면, 능숙한 타이피스트가 글 쓰듯이 텍스트를 편집하게 돼 — 메커니즘을 의식하지 않고. 마우스도, 메뉴 사냥도, Cmd+Shift+P 팔레트도 없어. 그냥 정확한 키 입력이 단어처럼 합쳐져서 문장처럼 명령이 돼. 8시간 코딩하는 하루에 그게 수천 번의 컨텍스트 스위치를 안 치르게 해줘.
원칙: Vim이 빠른 건 더 많은 키를 더 빠르게 쳐서가 아냐. 빠른 이유는 일하는 시간 대부분이 편집이라서고, Vim은 타이핑이 아닌 편집에 최적화돼 있어서야.
홈 row가 주는 ergonomic 이득
손이 홈 row에 머물러. 마우스로 손 옮길 일도 없고, 화살표 키 스트레칭도 없고, Cmd 모디파이어 엄지 곡예도 없어. 개발자 RSI 대부분은 modeless 에디터가 강요하는 chord-heavy 편집 패턴에서 와. 모달 편집은 chord를 sequence로 바꿔주고 — sequence는 손에 부드러워.
첫날부터 다 옮길 필요는 없어. VS Code, JetBrains, Cursor, Neovide — 현대 에디터는 전부 Vim 모드를 갖고 있어. 많은 개발자가 IDE 안에서 motion을 먼저 익히고, 머슬 메모리가 박히면 Neovim으로 졸업해. 어느 쪽이든 투자한 게 누적돼.