vi는 1976년에 태어난 에디터이다. 


마우스는 아직 만들어지지 않았고 모든 것을 키보드 위의 자판만을 이용해서 에디터를 조작해야 하는 시절이었다. 


그런데 키보드의 자판은 대부분 글자를 입력하는데 사용되어야 하니 자판을 타이핑 외 다른 조작에 사용하려면 별도의 명령 모드(command mode)를 만들 수밖에 없다.


그래서 vi명령(command) 모드와 타이핑으로 글자를 입력하는 편집(insert)모드를 갖고 있는 것이고 오늘날까지 이어져  vim도 동일한 모드를 갖고 있게 된 것이다.


우선, vim을 실행해보자. vim이 설치되어 있다면 다음과 같이 명령하여 실행한다. 


$ vim


다음과 같은 화면이 보인다. 




이 화면에서 여러 키를 눌러보면 자판이 입력되지 않는다는 것을 알 수 있을 것이다. 


왜냐하면 현재, vim명령 모드이기 때문이다. 


타이핑을 하고 싶다면 키보드에서 i 키를 눌러 편집 모드로 들어간다.


'끼워넣기' 또는 'insert' 표시가 나타나면 편집 모드에 들어온 것이다. 


이 상태에서 "Hello everyone!  :D" 라고 타이핑 한 것이 아래의 화면이다. 



타이핑이 끝나면 [Esc] 키를 눌러 다시 명령 모드로 돌아온다.


이제 vim을 종료해야 한다. 명령 모드에서 다음과 같이 :q!를 입력한다.


:q!



그러면 화면 하단의 가장 마지막 줄에 동일한 명령어가 입력되는 것을 확인할 수 있다. 


이 상태에서 [enter]를 눌러 명령어를 입력하면 vim이 종료된다.



vim명령 모드표준으로 채용하고 있다. 왜냐하면 실제로 vim을 사용해보면 커서의 이동같은 사소한 행위부터 다른 파일을 병합하고 셸 명령을 실행시키는 일까지 대부분의 작업이 명령 모드에서 이루어지기 때문이다. 오히려 타이핑으로 글자를 입력하는 작업은 생각외로 많지 않다. 그래서 모든 작업을 명령 모드에서 수행하다가 필요할 때마다 잠깐씩 편집 모드로 들어가서 입력하고 다시 명령모드로 돌아와서 작업하는 식으로 일이 이루어지는 경우가 많다. 아마도 이런 모드 전환을 하는 방식에서 vim을 처음 사용하는 사람들이 크게 이질감을 느끼고 익히기를 포기하는 경우가 많이 발생한다. 


나중에라도 간단하게 기억을 환기시키기 위하여 Anki 파일을 만들었으니 이용하고 싶으신 분은 다운로드 하시면 됩니다. 


001 vim의 모드.apkg


프로그래밍을 익히려고 하면 필수적으로 익혀야할 유틸리티(utility)들이 있다. 


텍스트 에디터도 그 중 하나다. 


시중에 나와있는 무료 텍스트 에디터들을 몇 가지 추천받아 사용해보았다. 


메모장, gedit, Atom, Notepad++, vi 또는 vim(이하 그냥 vim이라고 하겠다) 등을 사용해보았고 어떤 것이 가장 좋은지 고민에 고민을 거듭했다.


가장 쓰기 편한 것은 Notepad++와 Atom이었고 메모장과 geidt는 너무 기본적인 에디터였다.


그리고 vim은 정말 쓰기 어려운 최악의 에디터였다.


그렇다면 Notepad++와 Atom이 가장 합리적인 선택일 것이다.


그럼에도 vim을 써야겠다고 판단한 것은 과거의 경험 때문이다.


나는 군대에서 한글을 배웠고 당시 한글은 단축키를 쓰는 부류와 마우스를 쓰는 부류로 나뉘어져 있었다. 


그리고 마우스를 쓰는 경우보다 단축키를 잘 쓰는 경우가 생산성이 훨씬 좋았고 프로그램에 대한 일체감이 무척 뛰어났다.


즉, 문서 편집이 거의 생각의 속도로 이루어지고, 스스로가 한글 워드프로세서가 된 느낌을 받았었다. 


당연히, 문서 관련 일에 대한 심리적 부담도 상당히 적고 생산성도 뛰어날 수밖에 없었다. 


그래서 당시 나의 사수는 한글을 가르치면서 내가 마우스에 손을 대지 못하게 옆에서 감독했다.


이런 경험에 비추어 볼 때, 모든 것을 키보드 위에서 작업하는 것이 쉬운 일은 아니지만 숙련되기만 한다면 그 이득이 이루 말할 수 없을 것이 분명하다는 확신이 들었다. 


그리고 그런 점에서 vim이 가장 충실했기 때문에 결국, vim을 익혀야겠다는 결론에 도달했다.


나의 이런 생각을 뒷받침해주는 것이 사람들이 보여주는 vim에 대한 높은 충성도다.


vim을 싫어하는 사람들도 많은 것 같지만 제대로 사용해본 사람들은 vim에서 벗어나지 못하는 까닭이 무엇일까?


단지, 전통적으로 사용되어온 텍스트 에디터라서 사람들이 충성한다는 생각은 들지 않는다. 


오히려 vim에서 느낀 생각의 속도로 편집되는 높은 일체감과 생산성을 다른 텍스트 에디터에서는 맛보기 어렵기 때문이 아닐까?



이외에도 다양한 OS에서 사용할 수 있다는 범용성과, 임베디드 부터 웹까지 모든 작업에 이용할 수 있다는 장점도 있다.



이러저러한 정황을 볼 때 vim을 익힌다면 손해는 보지 않을 것이고 반드시 이득라는 점은 거의 확신할 수 있다. 


그렇다면 마지막 남은 문제는 과연 제대로 숙달할 수 있을 것인가 하는 점이다. 


vim은 결국 숙달할 수 없다면 최악의 텍스트 에디터일 것이기 때문이다. 


예전 같으면 숙달하기 어렵다는 점 때문에 결국, 포기할테지만 다행히도 숙달은 vim을 익히기 위한 튜토리얼Anki의 도움을 받으면 큰 무리없이 숙달할 수 있을 것으로 보인다.



그리고 마지막으로 vim을 쓴다고 하면 어째서인지 조금 멋있어 보였다는 것이 내 결정에 상당한 영향을 미쳤다는 점도 첨언하는 바이다. 


그럼 오늘부터 vim을 한번 내 것으로 만들어보자. 

+ Recent posts