Skip to content


ViEmu: First Impression

전에 작성한 PyGoogleChart 관련 글에 hey 님이 댓글을 쓰셨길래 따라가서 블로그 구경을 하다 왔다. 구경을 좀 하다보니 쿵야 어드벤쳐 키맵  for VIM 라는 글을 읽게 되었다. 그런데 HHKP 유저 + VisualStudio에서도 VIM 에뮬레이터를 쓰신다고.

링크된 VIM 에뮬레이터의 홈페이지를 찾아가보니 이런 물건이 나왔다.

viemu-movie

ViEmu – from http://www.viemu.com/

그 분이 오셨다!  The-One-Editor 를 고르라면 IRC/forum 에서의 몇 손가락 안에 꼽히는 flame-war를 불러일으키는 무언가지만,  내게 궁극의 에디터는 vim인 관계로 첫눈에 반했다! 싶은 물건을 하나 발견하게 되었다.

냉큼 30일 체험판을 다운받아서 VS 2005에서 테스트해보니 잘 돌아간다. VIM에서 내가 즐겨 쓰던 기능들을 하나씩 확인하는 중.1

간략히 — 한 1시간 써본 버젼으로 — 요약해보자면,


편집 기능

vi 편집기에서 가장 기본적인 — 그렇지만 익숙해지면 더 없이 편안하면서도 강력한 — 숫자 + 커맨드 조합 기능이 잘 동작 한다. (그러니까 3줄 복사 = 3yy, 2번 붙이기 2p, 같은 것들)  ex/visual mode 변환도 esc / a, A, i, I, o, O 등등 원래 있던 키 조합이 거의 동작한다. (사실 안되는걸 아직 못 찾아서)

Undo/redo 기능 (u / ^r) 도 vi의 느낌 그대로고, :next 하는 식으로 다음 버퍼 대신(…) 열려있는 다른 소스 파일 창으로 이동이 된다 :p

정규 표현식을 사용한 편집 기능도 적어도 내가 쓰는 수준에서는 전부 동작하는 것을 확인했다.

자동 완성

vim에서는 편집 모드에서 ^p, ^n 을 이용해서 자동완성을 시켜준다. (VS 라면 ^j지만)  이 기능도 intelli-sense를 사용해서 구현하고 있고, 링크해놓은 GIF 이미지에서 보이는 것처럼 incremental / highligting search도 지원한다.

심볼 찾아가기

vi에서 ctags 를 이용하면 ^], ^t를 이용한 심볼2 스택 이동을 할 수 있는데 — 특정 심볼의 정의를 찾아가거나, 다시 이전 정의로 돌아가는 식의 stack-like-traversal이 가능 — 이 기능도 inteliense + VS의 심볼 찾기 기능으로 구현한 듯. 그런데로 잘 동작한다.

물론 자주 쓰던 기능 중에 안되는 것도 있긴하다. split 혹은 vsplit (수평 / 수직 분할)된 창을 ^w + 이동키(hjkl)로 이동할 수 있었는데, 그 기능은 없다. (split은 있고 vsplit은 없음) 안타깝게도(…) :help도 없긴하다 :)

외부명령실행

내가 제대로 못한 것인지는 모르겠지만3

:!명령어

형식으로 외부 명령어를 쓸 수 있는 vim의 기능이 없다.4 그래도 :make 로 빌드를 할 수는 있더라.

vim for VS (gvim 확장)과 비교했을 때에는 break point 지정 같이 VS 의 기능을 직접 써야할 때 접근하기가 피곤했었는데, 그런 단점도 없이 대부분의 VS 단축키는 유지된다. (물론 편집 관련 들은 싹 사라지지만…)

폴딩관련

zf, zd, 등을 이용한 일명 접기 — VS에는 들어가있는 것 — 를 vi 의 방식으로 할 수 있게 된다. stania가 이것도 안되었었다고 하는데 수정 된 것 같다.

지원하는 시스템은 VS 2002 ~2008 인 듯하고, 처음 30일간은 무료로 쓸 수 있다. 다만 구매 가격이 79$이긴한데, 지금 눈에 콩깍지가 씌인 rein에게는 "얼마안하네" 로 밖에 안보이는 상태.

편집능력이 작게 잡아서 3배는 올라갈텐데 — 물론 프로그램 개발이 편집만 있는 것은 아니지만 — 이 정도면 회사에서 사달라고 해도 사주지 않을까 하는 중(…).

Windows 를 설치해도 gvim과 command line용 vim을 설치하고, 위키 편집은 w3m으로 들어가서 vim을 띄우거나, Firefox에서 view source with(vim)을 써서 vim가지고 편집하는 rein에게는 이만한 툴이 없는듯하다. 이번 주 초반에 주말동안 맥북 쓰면서 vim에 다시 익숙해진 손가락을 데리고 편집하느라 얼마나 괴로워했던가!

일단 30일은 채워서 써볼 예정이고, 30일 쓰고나면 회사에 사 달라고 조르거나(…), 안되면 자비로라도 구입하지 않을까 싶다 — 뭐랄까 MacBook사고

쉘이 바로뜨네! SSH가 기본으로 깔려있군

이랬던 느낌이랑 좀 유사. (덕분에 MacBook은 bootcamp/parellels없이도 잘 쓰는 중)

 

동작하지 않는 기능

stania의 제보로 하나 확인. vim에서,

:vmap co :s/^/\/\/<CR>
:vmap uc :s/^\(\/\/\)\?//<CR>

Visual block 전체 주석/주석해제 로 사용하곤하는데, 이ㅍ건 안된다. 일반 모드에서 두 글자 명령을 만들 수가 없다.

  1. 불행히도 VS는 전통적으로(?) Express Edition에는 플러그인 기능이 없다. 그래서 VS 2003~2008 유료버젼을 사용하는 사용자에게나 의미가 있는 것은 흠이라면 흠 []
  2. 함수 이름, 변수 이름, class 정의 … 같은 것들 []
  3. Windows Vista 문제일 수도 있으니 확인은 해봐야겠다 []
  4. 저기에 filter도 걸고해서 내용으로 가져올 수 도 있는데! []
이 저작물은 별도로 명시하지 않은 경우, Creative Commons Attribution-Share Alike 3.0 Unported License에 따라 이용하실 수 있습니다.

Posted in Computer.

Tagged with , , .


5 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. 커널0 says

    좋긴한데…다른 사람이 자리와서 쓰려고 하면 상당히 난감해 합니다. ㅎㅎ

  2. rein says

    커널0 / 그럴 땐 살포시 꺼주기로하고(…), 일단 한 달간은 써보렵니다 ~_~

  3. 수원 says

    나도 첫 눈에 반했다! XCode 에도 VI를 달라…

  4. rein says

    뭐랄까 신간 책을 한 무더기 쌓아놓고 할인가에 판매하는 곳을 발견한 느낌[...]

  5. rein says

    :e filepath 로 다른 열린 파일도 쉽게 가는데,
    :cd %:h 로 현재 작업 디렉토리(일명 CWD)를 바꾸는건 안된다; 흑

    …근데 패스가 좀 틀려도, 열려있는 문서는 :e filename 으로 잘 바뀌는듯. 다만 탭기반 완성은 안됨;



Some HTML is OK

or, reply to this post via trackback.