2011년 4월 25일 월요일

Emacs vs Vim

심심해서 정리해 오던 Emacs와 Vim에 대한 짤막한 비교글 모음. 개인적인 주관이 많이 담겨있을 지도 모른다.

Emacs는 리차드 스톨만이 TECO 편집기의 불편함을 해소하고자 만들었다고 전해진다. Vim은 빌 죠이에 의해 ed 라는 라인 편집기의 불편함을 해소하고자 개발된 에디터라 전해진다. 무엇이 불편했기 때문에 현재의 모습이 되었느냐를 판단할 수 있는 기초자료. 어쨌든 불편함을 개선하려는 움직임은 같다는 거다.

일단은 원초적(?)으로 Vim은 기동 속도가 빠르다. 반면, Emacs는 기동 속도가 좀 느리다.

Vim도 플러그인을 많이 넣으면 기동 속도가 느려지고 실행 속도도 느려진다. Emacs는 확장에 따라 기동 속도와 편집 속도까지도 기하급수적으로 느려질 수도 있다.

Vim이든 Emacs든 CapsLock 키를 Ctrl로 바꾸는 것이 여러모로 편하다. 어차피 CapsLock은 잘 안쓰일거다. 아마도...

Vim이든 Emacs든 마우스는 거의 손 안데는 것이 왠지 편할 것 같고, 멋져 보이는 것 같다 (...) 마우스를 잘 쓴다는 건 자랑할 만한 건 아니다. 하지만 마우스도 잘 쓴다는 건 자랑할 만 하다. 비록 키보드만 쓰는게 멋져 보일 지라도...

영어 문화권에서 만들어진터라, Emacs는 CJK(중국/일본/한국 등 멀티바이트 문자 문화권)에서는 골치아픈 부분이 있다. 다행히도 Vim은 이런 부분에서 좀 이득이 있을지도 모른다.

Vim에 많은 것을 기대하지 말라. Vim은 편집기이다. IDE가 아니다. 그냥 기능이 좀 많은 편집기다.

Emacs는 IDE라 불릴 만큼 대단한 기능을 제공할 수(?)도 있는 편집기다. 물론 당신의 능력이 된다면의 전제 하에서다.

Vim은 편집 속도에선 누구나 인정하지만 빈 것에서 뭔가를 만들어 내는게 느리다고 Emacs유저들이 비하하곤 했다. 하지만 이제 Vim도 편리한 확장환경으로 인해 비교될 만한 창조 능력을 가지게 되었다.

Vim에 비해 Emacs가 가지는 장점은 모드를 프로그래밍 가능하다는 점이다. 반대로 Vim은 자체적으로 가지고 있는 모드(입력/편집/명령/비쥬얼모드)를 제외하고 추가로 특별한 환경을 구성하는 건 어렵다. 편집 영역을 넘어서는 확장이 필요하다면 Emacs가 답이고 그렇지 않다면 Vim이 최고다. 대신 이런 점에서 난이도가 차이가 나기도 한다.

Vim의 플러그인으로 얻게 되는 함수의 이름이 왜 항상 대문자로 시작하는지 의문을 가진 적은 있는가. Vim 확장에 상당한 제한이 존재한다는 건 사실이다.

Emacs의 확장으로 얻게 되는 함수들은 너무 많아서 뭔가 모르고 쓰는 느낌이 많다. Elisp 소스를 분석할 줄 알아야 확장을 제대로 쓸 수 있다는 것을 알아야 한다.

일단 Elisp이나 CLisp(Common Lisp)은 일반적인 프로그래머가 보기엔 변태(?)적인 언어다. (...) 그렇다면 Vim의 스크립트 언어가 일반적이라고 말 하려 한다면 그것도 아주 약간 곤란한 점이 있긴 하지만... 어쨌든 변태스럽다. 변태... 나쁜건 아니지만...

뭔가를 만들거나 꾸미기를 좋아한다면 Emacs는 좋은 취미의 대상이 될 수도 있다. Emacs의 설정은 프로그래밍을 하는 기분이다. 자신만의 환경을 만들어 보라. 또한 Elisp으로 텍스트 기반에 한해서는 무한확장 가능한 Emacs의 환경을 즐겨보라. 그리고 Vim의 설정이 얼마나 편한지를 느껴라 (...)

편집만 할 거라면 그냥 Vim을 쓰라. Emacs의 기본 키 바인딩은 편집 친화적이라고는 하기 힘들다. Emacs는 편집을 하기 위해 해야할 설정도 굉장히 복잡하고 많다. Ctrl키 때문에 고생할 왼손을 생각하라. 아 물론 viper-mode나 vim-mode 같은 것도 괜찮다.

Vim의 키맵이 편집 친화적이라고 해서 항상 Emacs의 편집 속도 보다 빠르다는 건 아니다. 상황에 따라서는 Emacs의 키맵이 더 빠른 편집환경을 제공하기도 한다. 이 세상에 완벽이란 존재할 수 없다고 이야기 하는 것 처럼...

통합환경이 좋을 수도 있다. 하지만 Emacs로 많은 것을 할 수 있다는 것에 자만했을 때, 각각의 전용 GUI 어플들의 중요한 기능을 모르고 있게 될 수도 있다. 텍스트 기반이 좋다고 하더라도 GUI기반과는 장단점이 전혀 다르다.

Emacs가 Vim에 비해 얼마나 자주 죽는지 그들은 이해하고 있을까. 물론 확장을 안쓴다면 다른 이야기일 수도 있지만 그건 불가능하지.

해커들이 Emacs를 많이 쓴다고 해서 해킹에 좋다는 의미는 절대로 아니다. Vim과 터미널 및 Unix 유틸리티 등으로 그들의 능력과 맛먹을 수준의 짓(?)을 할 수도 있다.

해커들이 Emacs를 많이 쓴다는 것에서 다른 것을 이해하라. 해커들은 자신이 원하는 데로 바꾸는 것을 즐기는 것이지, 그것이 결코 편하다는 의미로 이해해서는 곤란하다.

고민하다가 Emacs와 Vim을 번갈아 쓰는 것도 나쁘지 않다. 하지만 편집 도중의 오타는 각오해야 할 것이다. 이 글을 쓰는 도중 화면에는 h, j, k, l 이 흩날리다가 텍스트가 사라지다가(Ctrl-Space + C-w) 난리다. (...)

Emacs가 앞에 오든 Vim이 앞에 오든 순서에 관계없이, 자신이 잘 쓰는게 가장 좋은 거다.
...

뭔가 Vim을 좀 더 띄워주려는 글 같지만... 둘 다 좋다고! 젠장...

댓글 없음 :