본문 바로가기

Better SW Development

[dw Review] 미친 과학자의 에디터? 혹은 최고의 에디터! Vi IMproved

개발자라면, 그리고 무언가 코드를 타이핑 하는것이 자신의 직업이나 취미의 일부인 사람이라면, 텍스트 에디터에 자연히 관심을 갖게 된다. 난 예전에 한동안 에디트 플러스라 는 국산에디터를 사용했었는데 매우 편리했었다. 빠른속도 하며 깔끔한 화면하며 불편함이 없었다. 유일한 불편함이라면 쉐어웨어라서 시작할때 '쉐어웨어'화면을 몇 초간 봐야 한다는 점이었는데, 그나마도 한번 띄워놓고 계속 쓰면 크게 불편하진 않았다.


[ 전세계적으로 많이 애용되는 국산 에디터 Editplus]

그러다 회사에 입사해서 유닉스 시스템 관리를 하게 되었는데, '무언가 참 별로다!' 싶은 녹색화면에서 선배들이 코드작성을 하고 있는 것을 보게 되었다. 저게 뭔 화면이냐고 물었더니 vi 라는 에디터라고 했다. 질문도 이상했고, 대답도 이상했지만 뭐 어쨌든 그랬다. 그 이상한 화면에서 선배들은 무언가 열심히 작업을 해 댔는데, 개인적으론 이거 무슨 70년대 SF 영화 찍는 것도 아니고 되도 않는 녹색화면에서 토닥토닥 쉘 스크립트를 짜는 모습을 보니 당황스러웠다. 에디트플러스 같은 GUI에디터를 놔두고, 그것도 FTP기능까지 충분히 제공하는데, 메뉴라고는 보이지도 않고 오로지 글자만 있는 화면에서 작업을 하고 있다니, 이거 무슨 질나쁜 조크인가 싶었다.

뭐 어쨌든 서버작업을 하려면 어쩔수 없다면서 선배는 vi 내게 사용법을 가르쳐 주겠다 했다. 보기엔 이래도 써보면 굉장히 편리한 에디터라고 이런저런 칭찬을 해대는데, '이사람이 지금 나를 한정치산자(=법률용어. 살짝 바보) 정도로 생각하는구나'라는 생각이 들었다. 그래도 업무를 하려면 배워야 한다니 어쩔순 없었다. 텔넷으로 유닉스 서버에 접속해서 선배의 말을 따라 vi 라고 타이핑한 다음 엔터를 눌렀다. 정확히는 파일 에디팅 하는 것을 연습해 봐야 한다고 해서 vi a.txt 라고 타이핑하고 엔터를 눌렀다.

터미널 화면이 깨끗하게 변하면서 커서가 좌측 상단에서 깜빡 거렸다.

몇 자 타이핑을 해봤는데, 이런 젠장!! 글자가 화면에 입력되지도 않았을 뿐더러, 화면 여기저기를 커서가 날라다녔다.

'뭐냐? 이 에디터는? 내가 뭘 잘못하는 건가?'

기분나뻐서 종료하고 빠져나오려고 했는데, 그 순간 또 당황하기 시작했다.

종료메뉴도 없고, 이거 뭘 어떻게 해야 나올수 있는거냐? 그 이상한 화면에서 빠져나올수가 없었다. 마우스는 원래부터 안 동작했으니까 뭐라 할 말도 없고. 이런저런 별짓을 다해도 그 당시 나의 상식으로는 vi 에디터 화면을 빠져나올 수가 없었다.
그렇게 당황해하고 있는 나를 보며, 선배는 옆에서 흐뭇한 미소를 짓고 있었다. 그러더니 의기양양한 표정으로 esc 버튼을 눌러 나를 진정시키고, : 키를 누른다음 q 라고 타이핑하고 엔터를 눌렀다.

다시 평온한 유닉스 터미널 콘솔화면으로 돌아왔다.

'이런!!! -_-'

이게 vi 라는 유닉스 에디터에 대한 나의 10년전 첫 기억이었다. 그 뒤 조금씩 적응해가면서 쓰기 시작했는데, 한 몇 개월 지나니까 vi 라는 에디터가 정말 쓰기 편하다는 무리에 나도 편승했다. 텍스트 에디팅에 있어서는 최고 였다. 화면을 마음대로 왔다갔다하면서 원하는 만큼 바로바로 작업할 수가 있었다. 마우스를 안쓴다는 점이 처음엔 힘들었는데, 시간이 지나니 그 점이 오히려 장점으로 드러나기 시작했다. 그 당시 일반 텍스트 에디터엔 흔하지 않았던 타이핑한 단어를 기억해서 자동으로 입력해주는 auto-completion기능에 화면분할, 컬럼에디팅등등 알면 알수록 굉장한 에디터라는 생각이 들었다. 그리고 현존하는 거의 모든 프로그래밍 언어 별로 문법 강조(syntax highlight)도 지원해 주었다.

익숙해지자 vi 에디터로 별의별 걸 다 했다. 쉘이야 기본이고, vi로 c도 짜고 java도 짜고, 일기도 쓰고, ToDo리스트도 관리하고, 매크로 만들어서 vi용 프로그램까지 만들었다. 남들이 울트라 에디터에 열광할때 혼자 뒤늦게 vi에 열광한 꼴이라니...

현재는 vi 의 개량형인 vim (=Vi IMproved)가 주로 사용되고 있다.

나도 지금은 예전같이 그런 매니악한 상태는 아니지만, 아직도 윈도우 PC에는 gui 기능까지 하이브리드 형태로 들어가 있는 gVim 이 설치되어있고, 맥북에는 macVim이라는 맥용 에디터가 설치되어 있다. (물론 mac은 기반이 유닉스라 기본으로 vim이 지원된다)


[Mac용 gui Vim인 MacVim]

vi는 처음엔 당황스러운데 일정기간이상 익숙해지면 굉장히 편리해진다. 이런 면에선 emacs와 비슷하지 않나 싶다.

만일 기존 에디터에 식상해 있거나, 새로운 모험가의 도전정신을 발휘해보고 싶거나, 유닉스 환경에서 에디팅을 해야 할 일이 있다면 vi는 배워볼만 하다. (부가적으로 좌뇌개발에도 도움이 되지 않을까 싶다. :)

처음에 접해서 혼자 배우려면 만만치 않은데, 마침 초보자를 위한 튜터리얼이 ibm dw 기사로 제공된다.


 친절한 선배의 지도처럼 설명이 쉽게 잘 되어 있다. 20여분이면 읽고 따라할 수 있을 정도다. 그리고 컨닝페이퍼처럼 되어 있는 부분은 출력해서 책상옆에 붙여놓기 보기에 부족함이 없다.



자, 자신을 괴롭히는 방식으로 좀 더 새롭게 발전하고 싶다면, vi를 배워보는 것은 나쁜 선택이 아니다. 다만, 일반 업무용으로 쓰기 위해서 vi를 배우는 일은... 글쎄.. 다시한번 생각해 보길 권한다.

제목에도 썼듯이, 미친과학자(mad scientist)의 에디터이거나 혹은 최고의 에디터. vi는 그런 존재의 에디터이기 때문이다.