2012年12月17日 星期一

VIM

簡單記錄一下自己工作時用的vim環境設定、常用功能和外掛。

摺疊

set foldmethod=syntax
set foldnestmax=20
set nofoldenable
set foldlevel=10
za:開啟或關閉
zM:全部關閉
zR:全部打開
修改顏色:
highlight   Folded        ctermfg=grey ctermbg=blue

ctags

不必多加介紹的重要外掛。
為了使用omnicomplete,建議使用下面的參數建立tag:
ctags -R --c++-kinds=+pl --c-kinds=+pl --fields=+iaS --extra=+q

在vimrc中加入下列命令,自動尋找tag檔案
如果在目前資料夾下找不到,會往上一層找:
let i = 1
  while i < 20
    if filereadable("tags")
      let tagsdb = getcwd() . "/tags"
      "echo db
      let $TAGS_DB = tagsdb
      set tags=$TAGS_DB
      let i = 20
    else
      cd ..
    let i += 1
  endif
endwhile

cscope

建立cscope檔案:
cscope -Rbq

在vimrc加入以下設定
set nocsverb
set cscopetag

常用按鍵:
<c-\><s>
<c-]>
<c-\><f>
指令:
:cs f <type> <key word>

與ctags相同,可以使用下面方式自動尋找cscope檔:
let i = 1
  while i < 20
    if filereadable("cscope.out")
      let db = getcwd() . "/cscope.out"
      "echo db
      let $CSCOPE_DB = db
      cs add $CSCOPE_DB
      let i = 20
    else
      cd ..
    let i += 1
  endif
endwhile

taglist

建議在vimrc加入選項:
let Tlist_Auto_Open = 1:開啟vim時自動開啟taglist
let Tlist_Exit_OnlyWindow = 1:當只剩下taglist windows,自動離開vim
let Tlist_Show_One_File=1:只顯示當前檔案中的tag

omnicomplete


VIM自己有許多自動完成的方法,Omni是其中一種
用法為<c-x><c-o>
常用自動完成:
<c-p>:往前尋找相符的symbol
<c-n>:往後尋找相符的symbol
<c-x><c-l>:往前尋找相符的一整行
<c-x><c-k>:尋找字典檔中的symbol
set dictionary=path/to/dictionary/file:設定字典檔位置
改變顏色:
highlight   Pmenu         ctermfg=White ctermbg=DarkBlue
highlight   PmenuSel      ctermfg=Black ctermbg=Gray
highlight   PmenuSbar     ctermfg=Red ctermbg=Black
highlight   PmenuThumb    ctermfg=Yellow ctermbg=DarkBlue
當移動游標或離開輸入模式時,關閉選單:
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif
autocmd InsertLeave * if pumvisible() == 0|pclose|endif

vcscommand

整合vim與版本控制系統的外掛。支援svn、git等等。
常用指令:
VCSBlame
VCSDiff [rXXXX[:rYYYY]]
VCSVimDiff
VCSInfo
VCSLog
VCSReview [rXXXX]
顏色調整:
highlight   DiffAdd       ctermfg=Black ctermbg=Green
highlight   DiffDeleted   ctermfg=Black ctermbg=Red
highlight   DiffChange    ctermfg=Black ctermbg=Grey
highlight   DiffText      ctermfg=Black ctermbg=Yellow

a

http://www.vim.org/scripts/script.php?script_id=31
在source file與header file之間快速切換。
常用指令:
:A
:AV
:AS

沒有留言:

張貼留言