## 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()