我的 vim 設定配置

調了好久,統整好的vim設定終於完成。(有更新設定)

我的vim 設定檔,存放在~/.vimrc :

set nocompatible

colorscheme asmanian2

“colorscheme elflord

syntax on

set hls

set ls=2

set cursorline

set nu

set ai

set softtabstop=4

set shiftwidth=4

set ic

set t_Co=256

let g:AutoComplPop_IgnoreCaseOption=1

“let g:acp_completeOption = ‘.,t,i,b’

set ignorecase

set statusline=%<%f %m%= %h%r %-19([%p%%] %3l,%02c%03V%)%y

” Can edit big5

set fileencodings=utf-8,big5,gbk,sjis,euc-jp,euc-kr,utf-bom,iso8859-1

set encoding=utf-8

set termencoding=utf-8

highlight Cursorline ctermfg=none ctermbg=none cterm=none

highlight TabLineSel ctermfg=yellow ctermbg=darkblue cterm=bold

highlight StatusLine ctermfg=yellow ctermbg=darkblue cterm=bold

highlight LineNr ctermfg=yellow

” configure tags – add additional tags here or comment out not-used ones

set tags+=~/.vim/tags/cpp

“set tags+=~/.vim/tags/gl

“set tags+=~/.vim/tags/sdl

“set tags+=~/.vim/tags/qt4

” OmniCppComplete

let OmniCpp_NamespaceSearch = 1

let OmniCpp_GlobalScopeSearch = 1

let OmniCpp_ShowAccess = 1

let OmniCpp_MayCompleteDot = 1

let OmniCpp_MayCompleteArrow = 1

let OmniCpp_MayCompleteScope = 1

let OmniCpp_DefaultNamespaces = [“std”, “_GLIBCXX_STD”]

” automatically open and close the popup menu / preview window

au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif

set completeopt=menuone,menu,longest,preview

” Set F12 to use ctags for C++

map <F12> :!ctags -R –c++-kinds=+p –fields=+iaS –extra=+q .<CR>

setl omnifunc=nullcomplete#Complete

autocmd FileType * setl omnifunc=nullcomplete#Complete

autocmd FileType python setl omnifunc=pythoncomplete#Complete

autocmd FileType javascript setl omnifunc=javascriptcomplete#CompleteJS

autocmd FileType html setl omnifunc=htmlcomplete#CompleteTags noci

autocmd FileType css setl omnifunc=csscomplete#CompleteCSS noci

autocmd FileType xml setl omnifunc=xmlcomplete#CompleteTags

autocmd FileType php setl omnifunc=phpcomplete#CompletePHP

autocmd FileType c setl omnifunc=ccomplete#Complete

” Set completement for C++

autocmd FileType h setl omnifunc=cppcomplete#Complete

autocmd FileType cpp setl omnifunc=cppcomplete#Complete

” Set F2 as nohls

map <silent> <F2> <ESC>:nohls<CR>

map <silent> <F4> <ESC>:qa<CR>

map <silent> <F5> <ESC>:wa<CR>

map <C-t>l <ESC>:tabnext<CR>

map <C-t>h <ESC>:tabprev<CR>

map <C-t>n <ESC>:tabnew<CR><ESC>:e

map <C-t>c <ESC>:tabclose<CR>

” Set F9 for Tlist

map <silent> <F9> :TlistToggle<cr>

“”””””””””””””””””””””””””””””

” Tag list (ctags)

“”””””””””””””””””””””””””””””

let Tlist_Ctags_Cmd = ‘/usr/bin/ctags’

let Tlist_Show_One_File = 1            “不同时显示多个文件的tag,只显示当前文件的

let Tlist_Exit_OnlyWindow = 1          “如果taglist窗口是最后一个窗口,则退出vim

“”””””””””””””””””””””””””””””

” BufExplorer

“”””””””””””””””””””””””””””””

let g:bufExplorerDefaultHelp=0       ” Do not show default help.

let g:bufExplorerShowRelativePath=1  ” Show relative paths.

let g:bufExplorerSortBy=’mru’        ” Sort by most recently used.

let g:bufExplorerSplitRight=0        ” Split left.

let g:bufExplorerSplitVertical=1     ” Split vertically.

let g:bufExplorerSplitVertSize = 30  ” Split width

let g:bufExplorerUseCurrentWindow=1  ” Open in new window.

autocmd BufWinEnter [Buf List] setl nonumber

“”””””””””””””””””””””””””””””

” winManager setting

“”””””””””””””””””””””””””””””

let g:winManagerWindowLayout = “BufExplorer,FileExplorer|TagList”

let g:winManagerWidth = 30

let g:defaultExplorer = 0

nmap <C-W><C-F> :FirstExplorerWindow<cr>

nmap <C-W><C-B> :BottomExplorerWindow<cr>

nmap <silent> <F8> :WMToggle<cr>

nmap <silent> <F7> :cw 10 <cr>

“””””””””””””””””””””””””””””

” Cscope setting

“””””””””””””””””””””””””””””

nmap <C-@>s :cs find s <C-R>=expand(“<cword>”)<CR><CR>

nmap <C-@>g :cs find g <C-R>=expand(“<cword>”)<CR><CR>

nmap <C-@>c :cs find c <C-R>=expand(“<cword>”)<CR><CR>

nmap <C-@>t :cs find t <C-R>=expand(“<cword>”)<CR><CR>

nmap <C-@>e :cs find e <C-R>=expand(“<cword>”)<CR><CR>

nmap <C-@>f :cs find f <C-R>=expand(“<cfile>”)<CR><CR>

nmap <C-@>i :cs find i ^<C-R>=expand(“<cfile>”)<CR>mce_markerlt;CR>

nmap <C-@>d :cs find d <C-R>=expand(“<cword>”)<CR><CR>

if has(“cscope”)

set csprg=/usr/bin/cscope

set csto=0

set cst

set nocsverb

” add any database in current directory

if filereadable(“cscope.out”)

cs add cscope.out

” else add database pointed to by environment

elseif $CSCOPE_DB != “”

cs add $CSCOPE_DB

endif

set csverb

set cscopetag

set cscopequickfix=s-,g-,c-,d-,t-,e-,f-,i-

endif

set nocompatiblecolorscheme asmanian2″colorscheme elflordsyntax onset hlsset ls=2set cursorlineset nuset aiset softtabstop=4set shiftwidth=4set icset t_Co=256let g:AutoComplPop_IgnoreCaseOption=1″let g:acp_completeOption = ‘.,t,i,b’set ignorecaseset statusline=%<%f %m%= %h%r %-19([%p%%] %3l,%02c%03V%)%y” Can edit big5set fileencodings=utf-8,big5,gbk,sjis,euc-jp,euc-kr,utf-bom,iso8859-1set encoding=utf-8set termencoding=utf-8
highlight Cursorline ctermfg=none ctermbg=none cterm=nonehighlight TabLineSel ctermfg=yellow ctermbg=darkblue cterm=boldhighlight StatusLine ctermfg=yellow ctermbg=darkblue cterm=boldhighlight LineNr ctermfg=yellow” configure tags – add additional tags here or comment out not-used onesset tags+=~/.vim/tags/cpp”set tags+=~/.vim/tags/gl”set tags+=~/.vim/tags/sdl”set tags+=~/.vim/tags/qt4
” OmniCppCompletelet OmniCpp_NamespaceSearch = 1let OmniCpp_GlobalScopeSearch = 1let OmniCpp_ShowAccess = 1let OmniCpp_MayCompleteDot = 1let OmniCpp_MayCompleteArrow = 1let OmniCpp_MayCompleteScope = 1let OmniCpp_DefaultNamespaces = [“std”, “_GLIBCXX_STD”]” automatically open and close the popup menu / preview windowau CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endifset completeopt=menuone,menu,longest,preview” Set F12 to use ctags for C++map <F12> :!ctags -R –c++-kinds=+p –fields=+iaS –extra=+q .<CR>
setl omnifunc=nullcomplete#Completeautocmd FileType * setl omnifunc=nullcomplete#Completeautocmd FileType python setl omnifunc=pythoncomplete#Completeautocmd FileType javascript setl omnifunc=javascriptcomplete#CompleteJSautocmd FileType html setl omnifunc=htmlcomplete#CompleteTags nociautocmd FileType css setl omnifunc=csscomplete#CompleteCSS nociautocmd FileType xml setl omnifunc=xmlcomplete#CompleteTagsautocmd FileType php setl omnifunc=phpcomplete#CompletePHPautocmd FileType c setl omnifunc=ccomplete#Complete” Set completement for C++autocmd FileType h setl omnifunc=cppcomplete#Completeautocmd FileType cpp setl omnifunc=cppcomplete#Complete
” Set F2 as nohls map <silent> <F2> <ESC>:nohls<CR>map <silent> <F4> <ESC>:qa<CR>map <silent> <F5> <ESC>:wa<CR>
map <C-t>l <ESC>:tabnext<CR>map <C-t>h <ESC>:tabprev<CR>map <C-t>n <ESC>:tabnew<CR><ESC>:emap <C-t>c <ESC>:tabclose<CR>” Set F9 for Tlistmap <silent> <F9> :TlistToggle<cr>
“”””””””””””””””””””””””””””””” Tag list (ctags)””””””””””””””””””””””””””””””let Tlist_Ctags_Cmd = ‘/usr/bin/ctags’let Tlist_Show_One_File = 1            “不同时显示多个文件的tag,只显示当前文件的let Tlist_Exit_OnlyWindow = 1          “如果taglist窗口是最后一个窗口,则退出vim””””””””””””””””””””””””””””””” BufExplorer””””””””””””””””””””””””””””””let g:bufExplorerDefaultHelp=0       ” Do not show default help.let g:bufExplorerShowRelativePath=1  ” Show relative paths.let g:bufExplorerSortBy=’mru’        ” Sort by most recently used.let g:bufExplorerSplitRight=0        ” Split left.let g:bufExplorerSplitVertical=1     ” Split vertically.let g:bufExplorerSplitVertSize = 30  ” Split widthlet g:bufExplorerUseCurrentWindow=1  ” Open in new window.autocmd BufWinEnter [Buf List] setl nonumber
“”””””””””””””””””””””””””””””” winManager setting””””””””””””””””””””””””””””””let g:winManagerWindowLayout = “BufExplorer,FileExplorer|TagList”let g:winManagerWidth = 30let g:defaultExplorer = 0nmap <C-W><C-F> :FirstExplorerWindow<cr>nmap <C-W><C-B> :BottomExplorerWindow<cr>nmap <silent> <F8> :WMToggle<cr> nmap <silent> <F7> :cw 10 <cr>
“””””””””””””””””””””””””””””” Cscope setting”””””””””””””””””””””””””””””nmap <C-@>s :cs find s <C-R>=expand(“<cword>”)<CR><CR>nmap <C-@>g :cs find g <C-R>=expand(“<cword>”)<CR><CR>nmap <C-@>c :cs find c <C-R>=expand(“<cword>”)<CR><CR>nmap <C-@>t :cs find t <C-R>=expand(“<cword>”)<CR><CR>nmap <C-@>e :cs find e <C-R>=expand(“<cword>”)<CR><CR>nmap <C-@>f :cs find f <C-R>=expand(“<cfile>”)<CR><CR>nmap <C-@>i :cs find i ^<C-R>=expand(“<cfile>”)<CR>mce_markerlt;CR>nmap <C-@>d :cs find d <C-R>=expand(“<cword>”)<CR><CR>
if has(“cscope”)set csprg=/usr/bin/cscopeset csto=0set cstset nocsverb” add any database in current directoryif filereadable(“cscope.out”)cs add cscope.out” else add database pointed to by environmentelseif $CSCOPE_DB != “”cs add $CSCOPE_DBendifset csverbset cscopetagset cscopequickfix=s-,g-,c-,d-,t-,e-,f-,i-endif

檔案下載

1. vimrc (下載後直接覆蓋掉家目錄的.vimrc即可)

下載點1 下載點2 下載點3

2.  .vim目錄的壓縮檔 (解壓縮後,直接覆蓋家目錄下的.vim資料夾即可)

下載點1 下載點2 下載點3

Reference

vimrc 自動回到最後離開編輯的位置

Make vim more powerful

褶疊功能的使用

vim7新功能 (加入了tab分頁與拼字檢查的功能)

強大的snippet

ctags+taglist+cppcomplete+global

vim 功能進階 強烈建議一定要看這一篇

ctags的使用

ctags with omnicppcomplete instal

vim+ctags+Taglist+cscope

vim的自動完成

vim Exercise:Wiki

This entry was posted in Linux, Linuxamp;FreeBSD, vim. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *