티스토리 뷰
최근에 회사를 다니기 시작했는데 리눅스에서의 순정 Vim만으로는 코드 생산성이 답이 안나오더라. 그래서 예전에 한번 실패했던 Vim 플러그인 설치에 다시 도전했고, 잘 쓰고 있다. 사용하는 플러그인과 .vimrc 설정 파일을 공유하는 취지에서 포스팅을 남긴다.
플러그인을 잘 쓰면 왠만한 GUI 에디터 부럽지 않은 성능을 뽑아낸다. 근데 난 플러그인을 잘 못쓰잖아? 난 아마 안될거야...
- Vim Plugin 매니저 'Vundle' 설치
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
- "~/.vimrc" vim 설정파일에 Vundle 스크립트 추가. ( " 은 주석으로 처리됨)
set nocompatible
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" plugin on GitHub repo
Plugin 'tpope/vim-fugitive'
" plugin from http://vim-scripts.org/vim/scripts.html
Plugin 'L9'
" Git plugin not hosted on GitHub
Plugin 'git://git.wincent.com/command-t.git'
" git repos on your local machine (i.e. when working on your own plugin)
Plugin 'file:///home/gmarik/path/to/plugin'
" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList - lists configured plugins
" :PluginInstall - installs plugins; append `!` to update or just
" :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
- 플러그인 설치정보를 .vimrc에 추가
" Vim에서 파일 탐색기를 사용할 수 있게 한다. - Nerd Tree
Plugin 'The-NERD-tree'
" Vim에서 자동완성 기능(Ctrl + P)을 키입력하지 않더라도 자동으로 나타나게 - AutoComplPop
Plugin 'AutoComplPop'
" 열려있는 소스파일의 클래스, 함수, 변수 정보 창 - Tag List
Plugin 'taglist-plus'
- Tag List는 ctag 라는 패키지를 사용하므로 설치해 준다. (이게 뭐하는 친구인지는 사실 잘 모른다.)
Ubuntu / Debian 계열 : sudo apt-get install ctags
Redhat / Centos 계열 : sudo yum install ctags
- 설치된 플러그인의 설정을 .vimrc에 추가
" NERD Tree를 왼쪽에 생성
let NERDTreeWinPos = "left"
" NERD Tree는 F7키. Tag List는 F8키에 매칭.
nmap <F7> :NERDTree<CR>
nmap <F8> :TlistToggle<CR>
filetype on
" Tag list가 사용하는 ctags의 경로 설정
let Tlist_Ctags_Cmd = "/usr/bin/ctags"
let Tlist_Inc_Winwidth = 0
let Tlist_Exit_OnlyWindow = 0
let Tlist_Auto_Open = 0
" Tag list 창을 오른쪽으로 생성
let Tlist_Use_Right_Window = 1
그리고 Vim으로 들어가 일반모드에서 :PluginInstall 을 입력하면 vimrc에서 Plugin 명령어로 잡아놓은 플러그인들이 설치된다. 나는 처음에 vim 내에서 창이동을 어떻게 하는지 몰랐는데, Ctrl+ww 하면 다음 창으로 이동이 된다. 좀 더 자세한 기능은 구글링해보시길.
- 추가로 .vimrc에서 잡아놓으면 좋은 설정들
" vi 실행시 number line 생성
set nu
" 코딩 작업시 자동 들여쓰기
set smartindent
" 일반모드에서 / 검색시 하이라이팅
set hlsearch
" 일반모드에서 / 검색시 대소문자 구분하지 않음
set ignorecase
" Tab 관련 설정. 일반적으로 가장 많이 쓰이는 tabstop 4, shiftwidth 4
set tabstop=4
set shiftwidth=4
왼쪽 창이 Nerd-Tree. 오른쪽 창이 Tag List. 가운데 자동완성이 AutoComplPop
참고로 Nerd Tree에서 특정 파일 실행시 창 분할로 오픈하고 싶다면 엔터가 이닌 i (수평분할), s (수직분할) 키를 사용하면 된다. 수평으로 분할된 창의 크기 조절은 Ctrl+w (숫자) + 혹은 - 로 사용가능. 수직 분할창의 크기조절 키는 구글링해도 모르겠다. 혹시 지나가시던 능력자 분께서 댓글로 알려주시면 정말로 복받으실 듯 ㅜㅜ
- 참고 포스팅
'내맘대로 > 내맘대로리눅스' 카테고리의 다른 글
Ubuntu Server 구축 03 - phpMyAdmin 수동 설치 (0) | 2015.09.17 |
---|---|
Ubuntu Server 구축 02 - 기본 패키지 설정 (0) | 2015.09.17 |
Ubuntu Server 구축 01 - 기본 패키지 설치 (0) | 2015.09.17 |
Linux Mint에서 Ubuntu KDE로.. 그리고 Gnome3로.. (4) | 2015.06.11 |
CentOS 6.x 에서의 phpMyAdmin, MySQL 업데이트를 조심하세요. (0) | 2015.05.17 |
리눅스에서 파이썬(python) 모듈 매니저 설치 (2) | 2015.04.07 |
CentOS 7 yum으로 phpMyAdmin 설치 & 권한(permission) 문제 해결 (2) | 2015.03.14 |