## vim-pathogen ##
Reference: https://github.com/tpope/vim-pathogen
mkdir -p ~/.vim/autoload ~/.vim/bundle; \ curl -Sso ~/.vim/autoload/pathogen.vim \ https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim
Add this to your vimrc:
execute pathogen#infect()
## Vundle ##
Reference: http://kldp.org/node/125263
https://github.com/gmarik/vundle
1. Setup Vundle:
$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
2. Configure bundles:
Sample .vimrc
:
set nocompatible " be iMproved
filetype off " required!
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'
" My Bundles here:
"
" original repos on github
Bundle 'tpope/vim-fugitive'
Bundle 'Lokaltog/vim-easymotion'
Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
Bundle 'tpope/vim-rails.git'
" vim-scripts repos
Bundle 'L9'
Bundle 'FuzzyFinder'
" non github repos
Bundle 'git://git.wincent.com/command-t.git'
" git repos on your local machine (ie. when working on your own plugin)
Bundle 'file:///Users/gmarik/path/to/plugin'
" ...
filetype plugin indent on " required!
"
" Brief help
" :BundleList - list configured bundles
" :BundleInstall(!) - install(update) bundles
" :BundleSearch(!) foo - search(or refresh cache first) for foo
" :BundleClean(!) - confirm(or auto-approve) removal of unused bundles
"
" see :h vundle for more details or wiki for FAQ
" NOTE: comments after Bundle command are not allowed..
Source-Explorer-srcexpl.vim -> SrcExpl 변경
trinity.vim -> Trinity 변경
## ctags 자동검색 ##
Reference: http://kldp.org/node/115739
set tags=./tags;/
## cscope 자동검색 ##
Reference: http://vim.wikia.com/wiki/Autoloading_Cscope_Database
function! LoadCscope()
let db = findfile("cscope.out", ".;")
if (!empty(db))
let path = strpart(db, 0, match(db, "/cscope.out$"))
set nocscopeverbose " suppress 'duplicate connection' error
exe "cs add " . db . " " . path
set cscopeverbose
endif
endfunction
au BufEnter /* call LoadCscope()
## cscope 명령어 ##
Reference: http://kldp.org/node/115739
:cs find c 함수명 => 함수를 호출하는 곳을 찾을 때
:cs find g 함수명 => 함수가 정의된 곳을 찾을 때
:cs find s 함수명 => 함수명과 일치하는 심볼을 모두 찾아낼 때
:cs find d 함수명 => 지정된 함수가 그 안에서 부르는 함수 찾기
:cs find e 정규표현식 => 정규표현식 패턴으로 찾기
:cs find f 파일명 => 파일 찾기
:cs find i 헤더파일 => 헤더파일 찾기
vim용 키맵 플러그인: http://cscope.sourceforge.net/cscope_maps.vim
## 현재 사용중인 .vimrc ##
"-----------------------------------------------------------------------" " Vundle 환경설정 "-----------------------------------------------------------------------" set nocompatible " be iMproved filetype off " required! set rtp+=~/.vim/bundle/vundle/ call vundle#rc() " let Vundle manage Vundle " required! Bundle 'gmarik/vundle' " My Bundles here: Bundle 'The-NERD-tree' Bundle 'The-NERD-Commenter' "Bundle 'Source-Explorer-srcexpl.vim' Bundle 'SrcExpl' Bundle 'cscope.vim' Bundle 'taglist-plus' "Bundle 'trinity.vim' Bundle 'Trinity' " original repos on github Bundle 'tpope/vim-fugitive' Bundle 'Lokaltog/vim-easymotion' Bundle 'rstacruz/sparkup', {'rtp': 'vim/'} Bundle 'tpope/vim-rails.git' " vim-scripts repos Bundle 'L9' Bundle 'FuzzyFinder' " non github repos Bundle 'git://git.wincent.com/command-t.git' " ... filetype plugin indent on " required! " " Brief help " :BundleList - list configured bundles " :BundleInstall(!) - install(update) bundles " :BundleSearch(!) foo - search(or refresh cache first) for foo " :BundleClean(!) - confirm(or auto-approve) removal of unused bundles " " see :h vundle for more details or wiki for FAQ " NOTE: comments after Bundle command are not allowed.. "-----------------------------------------------------------------------" "vim 환경설정 "-----------------------------------------------------------------------" scripte utf-8 " vim:set fenc=utf-8 tw=0: " Vim setting for sirini " Vim 전용 기능 사용 set nocp " 옵션 복원 set all& " 명령어 기록 갯수 set hi=100 " 백스페이스 사용 set bs=indent,eol,start " 인코딩 설정 "let &tenc=&enc "set enc=utf-8 set fenc=utf-8 set fencs=utf-8,cp949,cp932,euc-jp,shift-jis,big5,ucs-2le,latin1 " 커서 위치 항상 보이기 set ru " 완성중인 명령을 표시 set sc " 줄번호 표시 set nu " 줄 번호 표시 너비 설정 set nuw=5 " 탭 크기 설정 set ts=2 set sw=2 " 탭 >> 공백 변환 사용안함 set noet set sts=0 " 자동 줄바꿈 안함 set nowrap " 자동 들여쓰기 set autoindent " C프로그래밍 자동 들여쓰기 set cindent " magic 기능 사용 set magic " 이동 동작시 줄의 시작으로 자동 이동 set sol " 비쥬얼 모드 동작 설정 set sel=exclusive " 괄호짝 찾기에서 <> 도 찾도록 추가 set mps+=<:> " 새로 추가된 괄호 짝 보여주기 "set sm " 검색어 강조 set hls " 검색시 파일 끝에서 되돌리기 안함 set nows " 검색시 대소문자 구별 안함 set ic " 스마트한 대소문자 구별 기능 사용 set scs " 항상 status 라인을 표시 set ls=2 " 커스텀 확장자들에게 파일 형식 설정 "au BufRead,BufNewFile *.dic setl ft=php "파일 형식에 따른 신택스 하이라이팅 켜기 sy enable "-----------------------------------------------------------------------" " ctags database path 설정 "-----------------------------------------------------------------------" set tag=./tags;/ "-----------------------------------------------------------------------" " cscope database path 설정 "-----------------------------------------------------------------------" function! LoadCscope() let db = findfile("cscope.out", ".;") if (!empty(db)) let path = strpart(db, 0, match(db, "/cscope.out$")) set nocscopeverbose " suppress 'duplicate connection' error exe "cs add " . db . " " . path set cscopeverbose endif endfunction au BufEnter /* call LoadCscope() "-----------------------------------------------------------------------" " Tag List 환경설정 "-----------------------------------------------------------------------" filetype on " vim filetype on nmap:TlistToggle " F7 key = Tag List Toggle let Tlist_Ctags_Cmd = "/usr/bin/ctags" " ctags 프로그램 위치 let Tlist_Inc_Winwidth = 0 " window width change off let Tlist_Exit_OnlyWindow = 0 " tag/file 선택 완료 시 taglist " window close = off let Tlist_Auto_Open = 0 " vim 시작 시 window open let Tlist_Use_Right_Window = 1 " vim 시작 시 window open "-----------------------------------------------------------------------" " Source Explorer 환경설정 "-----------------------------------------------------------------------" nmap :SrcExplToggle " F8 key = SrcExpl TOggle nmap h " 왼쪽 창으로 이동 nmap j " 하단(preview) 창으로 이동 nmap k " 상단 창으로 이동 nmap l " 오른쪽 창으로 이동 let g:SrcExpl_winHeight = 8 " SrcExpl 윈도우 높이 지정 let g:SrcExpl_refreshTime = 100 " refreshing time = 100ms let g:SrcExpl_jumpKey = " " " 해당 definition으로 jump let g:SrcExpl_gobackKey = " " " back let g:SrcExpl_isUpdateTags = 0 " tag file update = off "-----------------------------------------------------------------------" " NERD Tree 환경설정 "-----------------------------------------------------------------------" let NERDTreeWinPos = "left" " NERD Tree위치 = 왼쪽 nmap :NERDTreeToggle " F9 Key = NERD Tree Toggle "-----------------------------------------------------------------------" " Runtime Path Manipulation "-----------------------------------------------------------------------" execute pathogen#infect()