Breaking News
recent

불편한 vi(vim) editor를 사용하는 이유



 vi(m)는 주로 CLI(Command Line Interface) 환경에서 편집과 프로그래밍을 할 수 있도록 개발된 에디터 입니다. 이러한 vi(m)는 UNIX(유닉스) 계열에서 주로 사용되고 있기에 우분투, CentOS 등의 리눅스에서도 사용할 수 있을 뿐만 아니라 애플의 OS X(매킨토시)에서도 기본 에디터로 내장 되어 있습니다. 유의하실 점은 명령을 vi로 실행하지만 실상 vim (vi improve : 향상된 vi)으로 실행되는 환경이 많습니다.

 vim은 주로 리눅스 공부를 할 때 접해 보시겠지만 GUI(Graphic User Interface) 환경에 익숙한 현대 컴퓨터 사용자들은 vim을 접하고 어려움과 당황스러움을 격게 됩니다. 일단 방향키 부터 h, j, k, l을 사용하는 것이 정석이고 글을 쓰거나 명령(단축키)을 하기 위한 Mode들로 전환하여야 하는 인터페이스를 가지고 있습니다. 이러한 입력모드, 일반모드, 명령모드, 비주얼 모드는 우리에게 익숙하지 않은 전혀 다른 단축키를 사용하기에 우리가 흔히 접할 수 있는 방식으로 사용이 불가능 하기 때문에 반드시 공부를 하여야 사용하실 수 있기에 비교적 진입장벽이 높습니다.

 그럼 이렇게 사용하기 불편한 vim을 아직도 사람들이 사용하는 이유에 대해 알아보도록 하겠습니다.

1. 오른손의 이동을 최소화한다.

 vim에 대해 이해하기 위해서는 vi가 탄생할 때의 시기를 알아야 합니다. vi는 GUI 환경이 우리에게 익숙하게 다가오기 훨씬 전인 1976년 최초로 세상에 발표 되었습니다. 당시 한 줄씩 편집하는 방식이 아닌 전체 화면에서 편집하였기에 Visual Editor라는 뜻으로 vi가 되었습니다. 이 당시 마우스는 당연히 사용되지 않았고 현재 사용되는 키 배치와 다른 키보드를 사용하였습니다. 이 때문에 커서를 이동하는 방향키도 지정되어 있어야 하고 명령 단축키들도 현재의 키보드와 다른 배치를 가지게 되었습니다.
 참고로 이러한 불편한 점 때문에 vim을 주력으로 사용하는 사용자들은 해피해킹이라는 UNIX 계열 환경에 최적화 된 고가 키보드를 사용하여 작업 효율을 향상하기도 합니다. 해피해킹 키보드는 vim 뿐 아니라 라이벌 관계인 Emacs 에디터와 BSD UNIX 계열의 운영체제인 애플의 매킨토시(MAX OS X)와도 궁합이 잘 맞습니다. 

<Happy Hacking Professional 2>


 하지만 이러한 특징은 현재의 직관적인 방향키와 마우스 등에 의해 편하고 익숙한 방식에 뒤떨어 진다고 말할 수도 있습니다. 그렇지만 vim은 오른손의 이동을 최소한으로 감소시켜 준다는 것이 장점입니다. 예를 들어 방향키까지 오른손을 이동하지 않아도 된다는 것입니다.

 필자가 키보드로만 작업하는 것에 의미를 두는 이유는 작업할 때 오른손이 마우스까지 가는 것이 귀찮아서 단축키를 외우다가 이후에는 방향키까지 움직이는 것도 불편해져서 가능한 키보드 안에서 작업할 수 있는 방법을 찾아보았습니다.

 재미있는 점은 1976년 발표된 vi 에디터보다 1973년 제록스 PARC 연구소에서 GUI를 먼저 개발하였습니다. 다만 상업화를 이루지 못하였고 약 10년 후 스티브 잡스와 빌 게이츠에 의하여 GUI 기반의 개인용 컴퓨터(PC : Personal Computer) 시대를 열어 사용자들이 컴퓨터를 쉽게 활용할 수 있게 되었습니다.

2. 문서편집 효율 향상

 또 다른 장점은 키 조합을 이용한 명령(단축키)이 적다는 것입니다. 바로 입력과 명령이 가능한 다른 에디터들과 달리 vim은 입력모드로 전환하여야 글자가 입력되고 일반모드로 전환하여 복사, 붙여넣기, 줄 삭제 등의 명령이 가능합니다. 각 Mode로 전환하는 것이 꽤나 번거롭겠지만 명령을 조합이 아닌 키 하나로 작업할 수 있기에 익숙해 지고 나면 Ctrl이나 Alt 등을 조합할 일이 줄어들고 한 손으로도 문서 편집이 가능해지기에 효율성이 올라 갈 수도 있습니다.
 단, 문서 또는 소스코드 편집 작업은 효율성이 올라가겠지만 경우에 따라 통합개발환경(IDE : Integrated Development Environment)을 통한 개발환경보다 생산성이 향상되는 것이 아닐 수도 있으니 유의하시면 되겠습니다.

<vi / vim 단축키 모음>

3. 어디서든 사용 가능한 vim

 vim은 UNIX 계열 대부분 기본적으로 제공하고 있기에 따로 설치할 필요가 없다는 것이 장점입니다. 예를 들어 서버 기술자가 자신의 관할이 아닌 서버를 다루어야 할 상황이 발생하였을 경우 남의 서버에 자신이 사용하는 에디터가 없어서 작업에 난감한 상황이 생길 수 있습니다. vim은 대부분의 UNIX계열에 기본적으로 설치되어 있기에 이런 난감한 상황이 생기지 않을 수 있습니다. 이 뿐만 아니라 교육을 받으러 갔을 때도 교육 대부분은 VM(가상화 : Virtual Machine) 안에서 이루어 지지만 네트워크가 연결되지 않아 주력 에디터를 설치하지 못할 수도 있고 혹여 주변 시선을 신경쓰는 분들은 혼자 vim을 다루지 못한다는 것에 민망함을 가질 수도 있습니다. 

 개인적으로는 vim 보다 Emacs를 먼저 다루었습니다. Emacs도 정말 좋은 에디터 이지만 vim 으로 전향한 이유 중 가장 큰 것이 다른 CLI 환경 서버를 다루어야 할 상황을 대비해서 입니다. 만약 서버에 네트워크 장애가 발생하여 해결하러 갔는데 Emacs를 다운로드 받을 수 없고 텍스트 파일을 다루지 못하면 안될 것 같아서 입니다.

별도. 정규표현식에 관하여

 그 외 vim에서 사용가능한 것 중 정규표현식(Regular Expression)이 존재합니다. 정규표현식은 vim 기능 중 하나이지만 사실 UNIX 계열에서는 알고있어야 하는 기능입니다. 이에 대한 이유를 설명드리자면 Windows에서는 레지스트리를 통하여 환경설정이 가능하지만 리눅스는 환경설정 파일들을 텍스트 형식으로 다루고 있기 때문입니다. 서버를 운용하거나 문자열을 다루는 개발을 할 때에 정규표현식을 배워야 작업 효율이 향상하기 때문에 기본적으로 정규표현식 자체는 어느 정도 공부를 하여야 합니다. 

Su-hyeon Jo

Su-hyeon Jo

댓글 없음 :

댓글 쓰기

Google Blogger 서비스는 비밀 댓글을 지원하지 않기에 비공개를 원하시면 메일로 문의주시기 바랍니다. MAIL TO.

대또(Dae DDo). Powered by Blogger.