[Emacs] vim-mode


vim-mode에 관해 감히 평가한다면 Emacs를 집어삼킨 Vim 이라고 (주객이 전도된 듯 한 표현을) 할 수 있을 정도다. 이름에서 알 수 있듯이 Emacs를 Vim 에뮬레이션 모드로 동작시키는데 왠만한 버퍼는 전부 적용을 받아 버릴 정도로 강력(?)하다. 심지어 쉘에서 조차 작동하기에...;;

스크린샷은 필요 없을 정도로 볼 게 없다. -_-;;; 위 스샷에서 하단 바에 VIM이 표시되어 있는 것이 보일 것이다.

https://bitbucket.org/lyro/vim-mode/downloads

vim-mode는 위 링크에서 다운받을 수 있다. (물론 소스 저장소 접근도 가능하다)

.el 소스들을 emacs load-path 혹은 적당한 디렉토리에 복사해 놓고 다음 설정을 해 주면 된다.
(add-to-list 'load-path "~/.emacs.d/vendor/vim-mode")
(require 'vim)
;; (vim-mode 1)
load-path는 vim-mode를 풀어놓은 곳을 지정하면 된다.

마지막 줄의 'vim-mode를 1로 세팅하는 것'을 주석처리 해 놨는데, 주석을 풀면 Emacs가 구동될 때 부터 vim-mode로 동작한다. 따라서 필요할 때만 vim-mode를 설정하려면 위 처럼 막아놓고 필요할 때 M-x vim-mode로 실행시키면 된다. 토글되기 때문에 한번 더 실행하면 vim-mode가 꺼지게 된다.

단점이 있다면 쉘이나 특수 버퍼에서의 동작이다. vim의 특수한 환경(입력모드가 별도로 존재한다는 점) 때문에 a, i 등의 키를 눌러서 입력모드로 바꿔야 특수버퍼의 환경을 제대로 이용할 수 있다.

하지만 Vim의 거의 모든 기능(윈도우, 비쥬얼블럭 등)을 이용할 수 있기 때문에 vim에서 넘어온 사용자에겐 추천할 만 한다.

에뮬레이션 환경이기 때문에 일부 동작이나 특수 환경과 충돌을 일으키거나 호환성이 떨어지거나 하는 부분이 있을 수 있다는 것을 염두하자.

ps. 원래 viper-mode + vimpulse를 설명하고 싶었는데 Cocoa Emacs에서 제대로 동작하지 않는 바람에 포기했다. -_-

댓글

이 블로그의 인기 게시물

소수점 제거 함수 삼총사 ceil(), floor(), round()

버전(Version)을 제대로 이해하기