VIM 기본 설정과 추천 플러그인 및 사용법 정리

.vimrc 설정

set nocompatible     " 오리지날 VI와 호환하지 않음
set autoindent       " 자동 들여쓰기
set cindent          " C 프로그래밍용 자동 들여쓰기
set smartindent      " 스마트한 들여쓰기
set wrap
set nowrapscan       " 검색할 때 문서의 끝에서 처음으로 안돌아감
set nobackup         " 백업 파일을 안만듬
set noswapfile
"set visualbell      " 키를 잘못눌렀을 때 화면 프레시
set ruler            " 화면 우측 하단에 현재 커서의 위치(줄,칸) 표시
set shiftwidth=4     " 자동 들여쓰기 4칸
set number           " 행번호 표시, set nu 도 가능
set fencs=ucs-bom,utf-8,euc-kr.latin1 " 한글 파일은 euc-kr로, 유니코드는 유니코드로
set fileencoding=utf-8 " 파일저장인코딩
set tenc=utf-8       " 터미널 인코딩
"set expandtab       " 탭대신 스페이스
set hlsearch         " 검색어 강조, set hls 도 가능
set ignorecase       " 검색시 대소문자 무시, set ic 도 가능
set tabstop=4        " 탭을 4칸으로
set lbr
set incsearch        " 키워드 입력시 점진적 검색
set cursorline       " 편집 위치에 커서 라인 설정
set laststatus=2     " 상태바 표시를 항상한다
syntax on "  구문강조 사용
filetype indent on   " 파일 종류에 따른 구문강조
set background=dark  " 하이라이팅 lihgt / dark
colorscheme jellybeans  "  vi 색상 테마 설정
set backspace=eol,start,indent "  줄의 끝, 시작, 들여쓰기에서 백스페이스시 이전줄로
set history=1000     " vi 편집기록 기억갯수 .viminfo에 기록
highlight Comment term=bold cterm=bold ctermfg=4 " 코멘트 하이라이트
set mouse=a          " vim에서 마우스 사용
set t_Co=256         " 색 조정

 

VIM 추천 플러그인

 

Vundle

Vundle 플러그인은 VIM 플러그인 설치를 돕는 플러그인입니다. 일반적으로 VIM에 플러그인을 추가하려면 플러그인을 검색하고 다운로드하여 plugin 디렉토리에 해당 플러그인을 위치시키는 작업들을 해야합니다. Vundle을 사용하면 우분투의 apt-get으로 패키지를 설치하듯이 vundle에서 플러그인을 검색하고 설치까지 가능합니다. VIM 사용에 있어 필수 플러그인이라고 할 수 있습니다.

참고 : VIM 플러그인 Vundle 설치 및 사용법

NERDTree

NERDTree는 현재 작업 디렉토리의 디렉토리 목록과 파일 목록을 explorer 가능하게 해주는 탐색기 기능의 플러그인입니다. 보통 VIM으로 에디트 작업을 하다가 다른 파일을 수정하려면 VIM을 나갔다 다시 다른 파일을 여는 귀찮은 작업을 하게 되는데 NERDTree가 있으면 탐색기에서 파일 찾듯이 찾아서 열면 됩니다.

참고 : VIM 플러그인 NERDTree 설치 및 사용법

Tagbar

Tagbar는 소스코드의 symbol(또는 tag)들을 정리하여 보여주는 플러그인 입니다. 소스코드에는 다양한 variable들과 function 그리고 structure들이 혼합되어 있는데 이런 symbol 리스트를 일목요연하게 보여주며 Tagbar 창에서 symbol을 선택하면 해당 symbol이 있는 위치로 이동 시켜줍니다. 동일한 기능을 하는 플러그인 중에는 Taglist가 있습니다.

neocomplcache

neocomplcache는 자동완성 플러그인입니다. 윈도우의 여러 IDE를 쓰셨던 분이면, 자동완성이라는 편리한 기능을 써 보셨을 겁니다. VIM에도 이런 역할을 해주는 플러그인이 여러개 존재합니다. 필자는 neocomplcache를 사용 중입니다.

The-NERD-Commenter

The-NERD-Commenter는 이름에서 보는 것과 같이 주석처리를 해주는 플러그인입니다. VIM의 visual 기능으로 일정 영역의 블록을 잡고 미리 정의된 단축키를 사용하면 자동으로 해당 라인들이 주석 표기가 됩니다.

DoxygenToolkit

doxygen은 소스코드의 문서정리에 사용되는 문법입니다. 주석에 doxygen이 인식 가능한 특정 문자열을 사용하여 소스 설명들을 소스 코드 내에 추가하여 후에 문서화 작업이 용이하게 만드는 문법입니다. 이런 doxygen 문법을 자동생성 해주는 플러그인이 DoxygenToolkit 입니다.

bling/vim-airline

airline 플러그인은 상단과 하단에 여러 정보를 표현해주는 플러그인입니다. 상단에는 수정했던 파일들의 버퍼 리스트를 보여주고 아래 라인에는 현재 수정 중인 함수 이름이나 파일 이름. VIM의 edit 모드에 대해 나타내줍니다.

 

키 맵핑 설정

단축키의 경우 취향 따라 설정하는 경우가 많죠. 저는 아래와 같이 몇가지 플러그인 기능들과 VIM 기본 단축키들을 저에 입맛에 맞게 설정하였습니다.

" 키 맵핑
" <F1> 폴딩
"map <F1> v]}zf
map <F1> :tabnew<cr>
" <F2> 창이동
map <F2> <C-w><C-w>
" <F3> NERDTree
map <F3> :NERDTreeToggle<cr>
" <F4> Tlist
"map <F4> :Tlist<cr>
map <F4> :TagbarToggle<cr>
" <F5> [i 정의 내용 보여주기
map <F5> [i
" <F6> gd 변수 선언으로 이동
map <F6> gd
" <F7> shell
map <F7> :VimShell<cr>
" <F8> Dox
map <F8> :Dox<cr>
" bnext, bprev
map <F11> :bp<cr>
map <F12> :bn<cr>
" tabn
map <S-Tab> gt<cr>
" bnext
map <S-F1> :bnext<cr>

 

<F1> tabnew

tabnew는 이름과 같이 tab을 새로 생성하는 VIM 명령입니다. 키를 직접 입력하는 게 귀찮아서 추가해두었습니다.

<F2> 창 이동

VIM에서 vs나 sp 같은 command를 입력하면 창 분할이 가능하죠. 이때 현재 작업창에서 다른 창으로 이동하려면 Ctrl-w 를 두 번 눌러야 합니다. 이것도 귀찮아서 F2로 설정했습니다.

<F3> NERDTree

VIM 플러그인 NERDTree를 호출해주는 설정입니다. <F3>키를 눌러 열었다, 닫았다 가능하도록 했습니다.

<F4> Tagbar

VIM 플러그인 Tagbar를 호출해주는 설정입니다. <F4> 키를 눌러 NERDTree와 마찬가지로 열었다, 닫았다 가능하도록 했습니다.

<F5>, <F6>

변수나 함수 선언 위치 또는 선언 값을 보여주는 설정인데 cscope를 쓰다 보니 사용성이 매우 낮은 것 같네요. 조만간 다른 설정으로 바꿔야겠습니다.

<F7> shell

참고 : VIM 플러그인 VimShell 설치 및 사용법

vimshell은 VIM에서 shell 창을 열어 shell 기능을 수행할 수 있는 플러그인입니다. 가령 소스를 수정하고 VIM 에디터를 닫지 않고 컴파일 하고 싶은데 make 를 위해 닫아야 하는 경우들이 생깁니다. 이런 때에 vs로 창을 분할하고 vimshell을 호출하면 shell 분할창에서 make가 가능합니다.

<F8> Doxygen

DoxygenToolkit을 호출하는 단축키 설정입니다. 선언한 함수에서 <F8>을 누르면 자동으로 Doxygen 문구가 생성됩니다.

<F11>, <F12>

버퍼 창을 이동해주는 단축키 입니다. VIM을 쓰다보면 여러 파일들을 왔다 갔다 하면서 수정하게 되는데 이 때, 열린 버퍼들을 이동하기 편한 단축키 입니다.

 

This Post Has 3 Comments

  1. green mark

    좋은 정보 감사해요.
    근데 캐 맵핑 중에 F7을 누르면 다음과 같은 에러가 나타나는데요. “Plugin ‘shougo/vimproc.vim’ 플러그인을 추가 설치해도 동일하네요.
    이건 무슨 문제일까요..

    “E481: No rage allowed
    Error occurred while loading vimproc.
    Please install vimproc Ver.6.0 or above”

    1. warnus

      블로그 방문 감사드립니다. http://vlee.kr/2522 링크 참조하시기 바랍니다.

      1. green mark

        답변 감사드립니다 ^^

Leave a Reply