Vim의 못난 이미지는 어디서 왔을까?
우선 짚고 넘어가야 할 것이, Vim은 현재 9.x 버전이 릴리스되고 있으며 매우 역사가 깊은 에디터이다.
많은 사람들은 복잡한 AI 확장이 달린 IDE들에 지쳐서 Vim을 사용하고 있지만, 그런 Vim에도 AI 기능을 달 수 있는 확장이 있고, 수십 년간 개선된 파싱 알고리즘, 물론 NeoVim의 트리시터에 비해서는 유연하지 못하지만 여러가지 특수 언어들을 위한 확장, 그리고 다양하게 꾸밀 수 있는 컬러스킴 등이 있다.
또한 Vim에서 가장 유명한 플러그인 관리자인 vim-plug를 개발한 전설적인 Vim 확장 개발자 junegunn은 한국인이다.
이런 평범하게 쓰기 좋은 에디터가 못난이 이미지를 가지게 된 데에는 특히 한국에서 3가지 측면이 있다고 생각한다.
많은 팬층은 많은 안티팬들을 불러온다
업계의 주류 에디터가 VSCode로 흘러가든말든, Vim은 한국에서 많이 사용되는 에디터 Top 10을 꼽으면 당당하게 상위권 내지는 중위권에 들어갈 것이다. 서양인들이 Emacs를 사랑한다면, 한국인이 사랑하는 CLI 에디터는 첫째가 Vim, 둘째가 GNU Nano일 것이다. 아마 단순하고 효율적인 것에 열광하는 한국인의 특성인지도 모른다.
그러나 이렇게 사용자가 많은 Vim은 안티팬이 생기기 좋은 구조이다. 이는 다음과 같은 까닭으로 정리된다.
- CLI이다.
- CLI 매니아들은 실용과 동떨어진 너드가 많다.
- 프로그래밍 고인물들은 꼭 옛날식으로 사용한다.
- 너무 많은 사람들이 사용하지만, 눈에 띄는 고인물들은 있는 기능도 쓰고 고대비 테마를 쓴다.
- 일상적으로 사용하기에는 WSL을 접속해야 한다.
- Vim을 메모장처럼 쓰는 사람은 macOS를 쓰거나 리눅스를 쓴다.
- 지루하고 현학적이라고 인식된다.
- Vim을 메모장처럼 쓰는 사람은 macOS를 쓰거나 리눅스를 쓴다.
- 옆동네 NeoVim은 해커 문화 친화적이다.
- 이상한 오타쿠들이 쓸 것 같다.
순화되지 못한 적나라한 표현이지만 솔직히 이런 까닭이 전혀 없다고 부정하기는 힘들 것이다. 예를 들어서, lightline, 퍼지 파인더, 좀 복잡하지만 NERDTree 등이 적용되었고, 적당히 무난한 Monokai가 적용된 Vim을 보면 거부감이 적을 것이다. 그러나 텅 빈 .vimrc에 고대비 테마 설정만 딱 꽂혀 있으면 단어 추천, 코파일럿 등등이 원천 차단되어서 “이게 뭐지?”라는 느낌이 든다.
이 Vim이란 것은 사용자층에 따라 엄청나게 사용법이 갈리는 셈이다.
이제 실제 사용 측면에서 얼마나 차이가 있는지 생각해 보자.
VSCode vs Zed vs Vim
VSCode
VSCode는 풍부한 AI기능을 내장하고 있으며, 마우스와 단축키 기반의 사용자 친화적인 조작법을 내세운다. 단축키야 러닝 커브가 거의 비슷하니 제쳐 두고 보자면, 직관적인 UI, 풍부한 AI기능, MS라는 신뢰감이 가는 기업 주체가 개발하는 에디터이다.
요약하자면:
| 항목 | 점수 |
|---|---|
| AI통합 | 5/5 |
| 인간 친화적 | 4/5 |
| 리소스 소모량 | 3/5 |
| 단순성 | 2/5 |
| 설정 용이성 | 3/5 |
Zed
Zed는 논란의 신흥 언어 양대산맥인 Go언어와 Rust 중 Rust로 작성되었다. 빠르고 가벼운 것을 모토로 내세우지만 그렇게 가벼운지도 모르겠고, UI가 편리한지는 잘 모르겠다. 솔직히 TUI 도구의 워크플로우를 어중간하게 GUI로 옮긴 것 같아서 첫인상은 좋은데 자꾸 손이 가진 않는다. 음식으로 따지면 선물받으면 버리지 않지만 매일 먹기 애매한 초콜릿이다.
AI 기능을 킬 시 VSCode보다 무겁다는 사례가 속출하는데, 이 경우는 사실 VSCode도 충분히 무겁고, AI 통합을 안 킬 시에는 VSCode랑 별 차이가 없거나 더 빠릿해서 플러스 마이너스 0으로 쳐 주겠다.
| 항목 | 점수 |
|---|---|
| AI통합 | 5/5 |
| 인간 친화적 | 3/5 |
| 리소스 소모량 | 3/5 |
| 단순성 | 3/5 |
| 설정 용이성 | 3/5 |
Vim
솔직하게 말하면 여기서 개인 의견이 강할 수 있다.
Vim의 단축키는 종류가 많지만 쓰는 것들만 추리면 생각보다 VSCode나 Zed에 비해 그렇게 많지도 않다.
설정 용이성은 요즘 나오는 vim-plug를 쓰면 Vundle보다 훨씬 낫다.
그러나 TUI라는 장벽이 잘 만들어놓은 워크플로우가 터미널에서 고립되게 하는 요소이다.
이렇게 하여 인간 친화성에서는 공정하게 1점 감점하도록 하겠다.
단순성으로 따지면 반복적인 워크플로우에 용이하다. 작업을 선형적인 습관이 아닌 순환적인 습관으로 하는 사람이라면 Vim을 선호할지도 모른다. 어쩌면 이것이 동양권에서 우세한 Vim의 인기를 더 잘 설명하는지도 모르겠다.
AI 통합 품질은 써드 파티 플러그인의 품질에 전적으로 의존한다. 좋은 플러그인을 찾으면 너무 좋지만, 나쁜 플러그인을 찾으면 나쁘다.
파일 등을 확인하는 것은 NERDTree가 있으나, 사용법은 그다지 간단하지 않다. 터미널의 명령줄 등을 빌리는 것이 더 빠르다.
설정 용이성은 VimScript 9도, NeoVim의 Lua도 쉽지는 않기 때문에 JSON 기반보다는 감점하겠다. 그러나 .vimrc나 init.vim만 보관하면 언제든 재현할 수 있기에 0.5점만 감점한다.
| 항목 | 점수 |
|---|---|
| AI통합 | 3/5 |
| 인간 친화적 | 2/5 |
| 리소스 소모량 | 1/5 |
| 단순성 | 5/5 |
| 설정 용이성 | 2.5/5 |
결론
그렇게까지 있을 것도 없는 멍텅구리인가 하면 그런 것은 아니다. 그렇다고 다른 것들과 별 차이없이 똑똑한 에디터느냐 하면, 방향성이 꽤 뚜렷한 에디터라고 말할 수 있다.
Vim에서 IDE수준의 환경을 구현할 수 있느냐고 하면 분명 그러하다. 그러나 그 단축키를 모두 암기하고 쓸 만한 사람이 Vim 유저라면, 그 사람은 Vim이기 때문에 사용하는 것이지 그 단축키의 직관성을 보고 쓰는 것이 아니다.
Vim의 방향성에 대해서는 단순하고, 핵심이 굵은 에디터 주변에 원하는 양념을 치는 것이라고 설명하고 싶다. 다른 환경에서도 비슷하게 재현 가능하고, TUI에 그렇게 어색하지 않으면서, AI가 당신의 워크플로우를 난도질하지 않게 적절하게 플러그인을 설치, 포크 및 수정해서 나만의 환경을 만들고 싶다면 충분히 추천할 만한 에디터이다.
심지어는 이 블로그 포스트 역시 Vim 9.1로 작성되었으며 다른 문서 편집기에 비해 크게 불편하지 않았다.
앞으로는 Vim을 쓰는 사람을 본다면 “으…TUI. 옛날식으로 일하네.”라고 생각하지 말고, “나는 VSCode 쓰는데 저 사람은 저걸 쓰네. 나중에 나도 한 번 써 보고 플러그인이나 추천해 볼까?”라고 생각해 보도록 하자.
P.S
글에서 풍기는 이미지와 달리 나는 꽤 개방적인 사람이다. 블로그에 방문한다면 한 번쯤 댓글을 달아 줬으면 좋겠다.