대메뉴 바로가기 본문 바로가기

데이터 기술 자료

데이터 기술 자료 상세보기
제목 Vim 사용하기 : Vundle로 Vim 플러그인 설치하기
등록일 조회수 7767
첨부파일  

Vim 사용하기

Vundle로 Vim 플러그인 설치하기



효율적인 소프트웨어 개발을 위해서는 여러 요건이 충족돼야 한다. 개발자에게 중요한 요건 중 하나는 개발 환경일 것이다. 이클립스(eclipse)나 마이크로소프트의 비주얼 스튜디오(Visual Studio)와 같은 통합개발환경(IDE)이 보급됐지만 초기 설치에 비교적 큰 비용이 드는가 하면 환경 자체가 무겁거나 확장성이 떨어지는 경우가 있다. 특히 기업이나 개발팀에서 VM을 사용하거나 원격 접속을 해야 할 때 더욱 그렇다. 개발환경 중 하나인 Vim(Vi IMproved)은 이런 경우 유용하다. 가볍고 멀티 플랫폼을 지원하며 다양한 플러그인 사용이 가능해 이식성, 확장성이 높기 때문이다.



Vim의 장점 중 하나는 플러그인을 통한 확장성이다. 이번 시간에는 개발에 유용한 Vim 플러그인들을 소개하고 직접 설치해 보도록 하자. 우선 웹브라우저로 Vim 공식 페이지(www.vim.org)에 접속하자.





Vundle 플러그인 설치

메인 화면에서 좌측 메뉴의 Scripts 링크를 클릭한 뒤, browse all을 클릭하면 Vim의 여러 가지 Colorscheme와 utility 등을 검색할 수 있다. 먼저 지난 시간에 마지막으로 소개한 플러그인 관리 툴 ‘Vundle.vim’ 플러그인부터 검색해 보자. Vundle을 이용하면 Vim 플러그인들을 쉽게 관리할 수 있다. 하단의 검색 옵션에서 키워드를 vundle, 타입을 utility, 정렬을 다운로드순으로 설정해 검색하면 어렵지 않게 Vundle.vim을 찾을 수 있다. 링크를 클릭하면 상세한 정보를 열람할 수 있고 플러그인의 다운로드 링크를 확인할 수 있다.



다운로드 링크를 클릭해 파일을 다운로드할 수도 있지만, 이 글에서는 간단히 Git을 통해 설치를 진행해 본다. 페이지 중단에 install details 링크를 클릭하면 vundle 플러그인 개발자의 깃허브(Github) 저장소로 연결된다. 해당 페이지 하단에는 설치 방법이나 이용법에 대한 설명들이 자세히 나와 있다.



메인의 README.md 단락에 Help Maintain Vundle 밑으로 Vundle의 사용법이 설명돼 있다. 이어지는 Quick Start 매뉴얼을 보면 2번째 항목에 Git을 이용한 설치 방법이 나와 있다. 설치하려면 프롬프트에서 다음과 같이 입력하면 된다.

$ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

clone 명령어를 이용하면 나의 홈 디렉터리 하부에 .vim/bundle/Vundle.vim 디렉터리를 생성하고 해당 디렉터리 안에 플러그인을 설치할 수 있다. Git이 설치돼 있지 않다는 메시지가 나타날 수 있는데, 리눅스의 경우 Fedora는 $ yum install git-core 명령으로, Ubuntu 배포판에서는 $ apt-get install git 명령으로 설치할 수 있다. Mac은 소스포지(sourceforge.net/projects/git-osx-installer)를 통해, 윈도우는 Git for windows(msysgit.github.com)에서 전용 인스톨러를 내려받아 실행하면 간단하게 설치할 수 있다. 본 글에서는 우분투 OS를 이용한다.



프롬프트에 done. 메시지가 나타나면 설치가 완료된 것이다. 이제 홈 디렉터리의 .vimrc 파일을 수정해야 한다. 프롬프트에 다음과 같이 입력한다.

$vi ~/.vimrc



.vimrc 파일의 상단에 <그림 5>와 같이 입력한다. 앞으로는 주석 처리된 " My Bundles here: 이하에 원하는 플러그인명을 적어 간단하게 설치할 수 있다. 모두 입력했으면 :wq 명령 후, 다시 .vimrc 파일을 연다. 지난 시간에 배운 자동완성 기능을 이용해 명령행 모드에서 :Bundle을 입력한 뒤 Ctrl+d 키를 누른다. 그러면 <그림 6>과 같이 번들의 기본 명령들이 출력된다.



중단의 주석에 명시돼 있듯이 BundleList 명령은 설치된 플러그인 목록을 출력한다. BundleInstall은 My Bundles here 주석 이하에 표시된 새로운 플러그인을 설치하는 명령이다. BundleSearch는 새로운 플러그인을 검색하는 명령이며 BundleClean은 삭제됐거나 사용하지 않는 플러그인을 정리해 삭제하는 역할을, BundleUpdate는 플러그인의 새로운 업데이트가 있다면 업데이트를 자동으로 수행해 주는 기능을 한다. 먼저 BundleSearch 명령을 실행하자. :BundleSearch를 입력하고 엔터 키를 누르면 많은 플러그인 리스트가 <그림 7>처럼 Vim의 왼쪽 창에 분할돼 나타난다. 이제 문자열 검색 기능을 이용해 원하는 플러그인을 리스트에서 가져와 보자. 먼저 The-NERD-tree라는 플러그인을 설치해 보자. 아래 방향으로 문자열 검색 기능을 사용하기 위해 /The-NERD-tree를 입력해 검색한다.



이제 이 텍스트를 yy명령으로 복사한 뒤, Ctrl+w, w를 눌러 오른쪽 분할창으로 커서를 이동한다. 10번 라인에 p 명령으로 조금 전에 복사한 Plugin ‘The-NERD-tree’ 텍스트를 붙여넣는다. 다시 한 번 Ctrl+w, w 키로 왼쪽 분할창으로 커서를 이동한 뒤 q 키를 누르면 BundleSearch가 종료된다. 이제 .vimrc의 수정 사항을 :wq 명령으로 저장 후 종료한다. 이번에는 .vimrc 파일을 다시 열어 같은 방법으로 :Bundle Install 명령을 실행시킨다. 이제 “ My Bundles here: 이하에 새로운 Plugin ‘The-NERD-tree’라는 텍스트를 감지하고 자동으로 The-NERD-tree 플러그인이 설치된다.





The NERD tree 플러그인

설치된 NERDtree 플러그인은 비교적 단순한 Vim 환경에서 구조적 직관성을 제공하는 파일 탐색기 플러그인이다. Vim에서 파일을 탐색하려면 기존에는 명령행 모드를 이용해 :e filename으로 파일을 탐색해 열어볼 수 있었다. 파일의 디렉터리 구조가 다단으로 복잡하게 구성돼 있거나 폴더를 비롯한 여러 형식의 파일이 뒤섞여 있고 디렉터리 내부에 파일이 많을수록 파일 탐색이 복잡하고 가독성도 떨어지게 된다.



그러나 NERDtree를 이용해 파일을 탐색하면 비교적 파일 탐색이 불리한 Vim 환경에서 구조적인 트리 노드 형태로 디렉터리 구조를 확인할 수 있어 손쉽게 파일을 열어볼 수 있다. Vim을 실행한 상태에서 :NERDTree를 입력하면 실행할 수 있다



좌측에 분할창이 생기면서 디렉터리 구조와 파일들을 나열한다. 커서의 포커스를 이동해 J, K 키로 상, 하로 움직일 수 있고, Enter 키를 눌러 디렉터리의 하위 노드를 펼칠 수 있다. 파일의 경우 해당 파일을 열어 오른쪽 창에 표시해 준다. ? 키로 간단한 도움말을 볼 수 있고, q 키로 창을 닫을 수 있다.

플러그인이 설치되기 전의 파일 탐색 방식보다 NERDTree 플러그인을 이용한 방식이 더욱 편리하다는 걸 알 수 있다. NERDTree를 활용하면 파일이나 디렉터리 구조를 좀 더 구조적으로 확인할 수 있고, 탐색 및 접근도 더욱 용이하다. 이제 플러그인이 설치된 ~/.vim 이하 해당 플러그인 디렉터리의 doc 폴더에서 플러그인 도움말을 참고하자. NERDTree를 이용해 해당 디렉터리를 탐색, 이동해 도움말 파일인 NERD_tree.txt 파일을 찾아 엔터 키로 선택하면 된다.



목차를 보면 상세하게 내용이 정리돼 있다. 예를 들어 3번 절에 Options 매뉴얼을 보면 NERDTree에 관한 고유 설정들이 나열돼 있다. 3.2절에는 option details라는 메뉴가 있다. Vim 방향키로 내용을 탐색해 내려가거나 /customisation으로 문자열 검색 기능을 이용하면 쉽게 3.2절의 위치로 이동할 수 있다. 3번 절의 고유한 설정 값이 어떻게 적용되는지 명세하고 있는 3.2절의 도움말을 참고해 .vimrc에서 NERDTree에 대한 간단한 설정 몇 가지를 시도해 보자.



주석으로 표기된 The-NERD-tree 이하의 설정을 보면 nmap, let이 있다. let 명령을 사용하면 지난 시간에 언급한 set 설정과 비슷하게 플러그인의 고유 설정 변수를 설정할 수 있다. map은 사용자의 키보드를 원하는 키로 맵핑(mapping)하는 설정이다.

예를 들어, 사용자가 매번 NERDtree 플러그인을 실행하기 위해 명령행 모드로 :NERDTree를 입력해야 한다면 매우 불편할 것이다. map 설정을 통해 사용자가 원하는 명령을 미리 원하는 단축키로 맵핑해 두면 플러그인을 실행할 때 사용자가 설정한 단축키로 쉽게 실행할 수 있다. 는 본래 ‘’를 의미하는데, 윗줄의 let mapleader=',' 명령으로 쉼표로 바꿔주고 있으며, 은 Carriage Return을 뜻하고 키보드에서는 엔터 키를 의미한다. 그래서 n t를 차례로 입력하면 :NERDTreeToggle(엔터) 명령이 입력돼 NERDTree 플러그인이 실행되는 식이다. 설정의 맨 앞 n은 Nomal mode(일반 모드) map 즉, 일반모드에서 실행함을 의미한다. nmap, imap(입력 모드), vmap(비주얼 모드) 등 각 모드에서 동작하는 map 설정이 다르다.

<표 1>에 설정 가능한 vimrc의 map 명령과 mapping key를 정리했다. 이를 참고해 자신에게 맞는 키로 플러그인을 맵핑하면 된다.



Tagbar 플러그인 설치

이번에는 Vim 웹사이트에 접속해 The-NERD-tree와 같은 방법으로 Tagbar를 검색해 보자. 그 다음 중단에 보이는 링크를 통해 Tagbar 홈페이지(ma jutsushi.github.com/tagbar)로 이동하자. Tagbar 홈페이지에서 플러그인 소개와 스크린샷이 포함된 정보를 얻을 수 있다.





일단 설치부터 해보자. 같은 방식으로 .vimrc 파일을 열어 :BundleSearch 명령을 실행한다. The-NERD-tree와 같은 방식으로 문자열 검색 기능으로 /Tagbar를 검색한다. “Plugin 'Tagbar'” 텍스트를 yy 명령으로 복사한 후 같은 방식으로 우측의 11번 라인에 붙여 넣는다.



이제 다시 :BundleInstall 명령을 실행한다. Processing...이라는 메시지가 나타나고 잠시 뒤에 Done! 메시지가 나타나면서 <그림 16>과 같이 설치가 완료된다.



실행하기 전에 Tagbar는 ctags라는 종속성이 필요함을 알아두자. ctags는 소스 코드상의 태그들 (전역 변수, 함수의 정의, 매크로 선언 등)을 데이터베이스화하는 유닉스 명령 툴이다. 이렇게 생성된 태그 데이터베이스는 vim이나 emacs와 같은 다른 에디터에서 특정 함수나 심벌을 찾아갈 수 있도록 참고할 때 필요하다. 프롬프트에 다음과 같이 입력해 설치할 수 있다.

$ apt-get install ctags 또는 $ yum install ctags

패키지를 통해 간단하게 설치한 후 vim을 실행한 뒤, 명령행 모드에서 :Tagbar 또는 :TagbarToggle을 입력한다.



Tagbar를 이용하면 <그림 17>과 같이 코드의 메소드, 필드와 같은 태그 정보를 한눈에 확인할 수 있다. 태그를 선택하면 해당 태그가 존재하는 실제 코드 위치로 바로 점프할 수 있다. 이제 vimrc 설정에 대해 확인해 보자. 노멀 모드에서 ,과t를 차례로 입력하면 :TagbarToggle로 key mapping이 되며 Tagbar가 실행되도록 설정했다. 하단에는 let을 통해 너비 값 고정, 실행 시 자동 포커스 이동, 태그를 선택했을 때 자동 종료 옵션 사용하지 않음, 태그 표시 문자를 화살표 심벌로 표시할 것 등을 설정했다. 그리고 문자열 인코딩은 UTF-8로 지정했다. 그리고 다른 플러그인처럼 .vim 디렉터리 이하에서 tagbar.txt 파일을 통해 도움말을 참조할 수 있다. 이제 도움말에서 앞서 설정한 옵션들을 검색해 보자.





예를 들어, Tagbar 플러그가장 빠른 방법일 것이다. 만약 코드에서 특정한 메소드를 찾는다고 가정하면 /메소드이름 를 입력하고 n 키로 다음 문자열을 계속 찾아가야 한다. Tagbar를 이용하면 ,와t 키로 Tagbar를 실행한 후, 단지 태그를 선택하는 것만으로 손쉽게 원하는 지점으로 점프할 수 있다.

이제 코드를 좀 더 구조적으로 확인할 수 있고, 코드를 디버깅하거나 유지, 관리하는 데 더욱 편리하고 강력한 기능을 갖게 됐다. 지금까지 Vundle과 플러그인 설치, 설정 방법, 사용법 등을 알아봤다. 다음 시간에는 다른 유용한 몇 가지 플러그인을 더 소개할 것이다. 또 최종적으로 완성된 나만의 설정 환경을 다른 환경에서 순식간에 불러와 사용하는 방법을 살펴볼 계획이다.



출처 : 마이크로소프트웨어 5월호

제공 : 데이터전문가 지식포털 DBguide.net