Vim Lecture #3 - Vim 환경설정

#3 - Vim 환경설정

enter image description here

1. Vim 환경설정

오늘은 .vimrc에서 설정할 수 있는 기본적인 명령어들에 대해서 살펴볼께요.

syntax enable " 문법강조 활성화
set background=dark  " 검정배경을 사용할 때, (이 색상에 맞춰 문법 하이라이트
colorscheme alduin

set wmnu      " Tab 자동 완성시 가능한 목록을 보여줌
set nu        " 라인수를 표시해 줍니다
set nocompatible   " 방향키로 이동가능
set number            " line 표시를 해줍니다.
set ai                    " auto indent
"set noai                    " auto indent cancle
set si                    " smart indent
set cindent            " c style indent
set shiftwidth=4      " shift를 4칸으로 ( >, >>, <, << 등의 명령어)
set tabstop=4         " tab을 4칸으로
set ignorecase      " 검색시 대소문자 구별하지않음
set hlsearch         " 검색시 하이라이트(색상 강조)
set expandtab       " tab 대신 띄어쓰기로
set fileencodings=utf-8,euc-kr    " 파일인코딩 형식 지정
set bs=indent,eol,start    " backspace 키 사용 가능
set history=1000    " 명령어에 대한 히스토리를 1000개까지
set ruler              " 상태표시줄에 커서의 위치 표시
set nobackup      " 백업파일을 만들지 않음
set title               " 제목을 표시
set showmatch    " 매칭되는 괄호를 보여줌
set nowrap         " 자동 줄바꿈 하지 않음

set laststatus=2            " vim-airline 플러그인을 위해서 상태바 2줄로
let g:airline_left_sep=''   " vim-airline 상태바 왼쪽 구분자 없음
let g:airline_right_sep=''  " vim-airline 상태바 오른쪽 구분자 없음
filetype on

" 단축키
" NERD Tree를 왼쪽에 생성
let g:NERDTreeWinPos = "left"

" Taglist config
let g:Tlist_Use_Right_Window = 1

" tags config
set tags=./tags;../tags;../../tags;../../../tags;../../../../tags;../../../../../tags;../../../../../../tags;

" NERD Tree는 F7키. Tag List는 F8키에 매칭.
nmap <F7> :NERDTreeToggle<CR>
nmap <F8> :TlistToggle<CR>
au FileType python map <C-S-B> :!python3 % <CR>
au FileType c map <C-S-B> :!gcc % -fopenmp -o %< && time ./%< && rm %< <CR>
au FileType cpp map <C-S-B> :!g++ % -o %< && time ./%< && rm %< <CR>

현재 제가 .vimrc 에서 사용하고 있는 설정들을 주석과 함께 정리해봤네요.

주석이 없는 몇 부분에 대해서 설명을 드리면

set tags=./tags;../tags;../../tags;../../../tags;../../../../tags;../../../../../tags;../../../../../../tags;

tags는 ctags로 생성된 tag DB를 불러오기 위한 것으로 vim으로 코드 디버깅할때 함수나 변수를 따라가서 굉장히 유용하게 작업할 수 있어요. vim을 어디서 실행하든 주변 상/하위 폴더 에서 tags 파일을 불러올 수 있도록 셋팅한 부분이에요.

nmap <F7> :NERDTreeToggle<CR>
nmap <F8> :TlistToggle<CR>

nmap은 단축키 설정인데요. Plugin으로 설치한 NERDTree와 Tlist를 F7과 F8로 Toggle 동작 시키기 위한 부분이에요. 이것도 사용하다보면 유용 합니다. ㅎㅎ

au FileType python map <C-S-B> :!python3 % <CR>
au FileType c map <C-S-B> :!gcc % -fopenmp -o %< && time ./%< && rm %< <CR>
au FileType cpp map <C-S-B> :!g++ % -o %< && time ./%< && rm %< <CR>

마지막으로 au는 autocmd로 특정 이벤트가 발생할 때 자동으로 명령 수행 부분이구요. FileType 옵션으로 셋팅해주었어요. au FileType으로 설정된 특정 언어에 따라 map을 이용해서 Ctrl+Shift+B 키를 맵핑한거죠. 같은 Ctrl+Shift+B 키를 눌러도 언어가 Python, c 아니면 cpp 냐에 따라서 다르게 실행 됩니다. 간단히 테스트하기에는 편해요.

2. 마무리

지금까지 제가 사용하는 vim 환경을 살펴봤는데요. 위 방법들을 응용해서 본인 환경에 맞게 여러가지 설정들을 단축키 설정해두면 정말 정말 편리하게 사용할 수 있겠네요. vim이 환경셋팅에는 손이 많이가도 막상 셋팅하고 나면 정말 편리합니다.
Plugin Vundle 설치와 기본적인 환경설정까지 했다면 이제 Vim을 잘 사용할 준비가 된 것 같네요. 다음 시간에는 Vim의 꽃! 매크로 기능에 대해서 간단히 알아보도록 할께요.

도움이 되셨다면 더 좋은 정보 공유를 위해 광고 클릭 부탁 드립니다 :)

댓글 쓰기

0 댓글