詳細出處參考:http://www.itqun.net/content-detail/233757.html
1.tags
1)安裝ctags
2)進入源碼根目錄,輸入命令"ctags-R",會在當前目錄下生成tags文件
3)用vim打開文件后,先輸入命令"settags=tags文件的路徑",最好寫在.vimrc中
4)vim中tag命令的使用
ctrl + ] 跳轉(zhuǎn)函數(shù)、宏
ctrl + o 回到跳轉(zhuǎn)前的地方
ctrl + T 跳到標簽棧中較早的標簽
在命令行中輸入"vim-t 函數(shù)名" 直接打開文件并跳轉(zhuǎn)函數(shù)
:tag 函數(shù)名(不分大小寫)跳轉(zhuǎn)函數(shù)
:tags 顯示跳轉(zhuǎn)標簽棧
5)vimrc設(shè)置
if has("ctags")
if filereadable("tags")
set tags=tags
endif
endif
2.cscope (創(chuàng)建一個數(shù)據(jù)庫索引,用于查找)
1)安裝cscope
2)進入源碼根目錄,輸入命令"cscope-Rbq",會在當前目錄下生成cscope.out,cscope.in.out, cscope.po.out三個文件
3)cscope默認情況下不解析c++和JAVA文件,可以把把這些文件的名字和路徑保存在cscope.files文件中,當cscope發(fā)現(xiàn)在當前目錄中存在cscope.files時,就會為cscope.files中列出的所有文件生成索引數(shù)據(jù)庫
cd src
find . -type f > cscope.files
cscope -bq -i cscope.files
4)cscope命令行選項參數(shù)
-R: 在生成索引文件時,搜索子目錄樹中的代碼
-b: 只生成索引文件,不進入cscope的界面
-q:生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
-k: 在生成索引文件時,不搜索/usr/include目錄
-i:如果保存文件列表的文件名不是cscope.files時,需要加此選項告訴cscope到哪兒去找源文件列表??梢允褂?/font>"-",表示由標準輸入獲得文件列表。
-I dir: 在-I選項指出的目錄中查找頭文件
-u: 掃描所有文件,重新生成交叉索引文件
-C: 在搜索時忽略大小寫
-P path:在以相對路徑表示的文件前加上的path,這樣,你不用切換到你數(shù)據(jù)庫文件所在的目錄也可以使用它了。
5)輸入":cscopeadd 路徑/cscope.out",添加cscope數(shù)據(jù)庫
6)vim中":cscopefind"命令的選項參數(shù)
s: 查找c語言符號,即查找函數(shù)名、宏、枚舉值等出現(xiàn)的地方
g: 查找函數(shù)、宏、枚舉等定義的位置,類似ctags所提供的功能
d: 查找本函數(shù)調(diào)用的函數(shù)
c: 查找調(diào)用本函數(shù)的函數(shù)
t: 查找指定的字符串
e: 查找egrep模式,相當于egrep功能,但查找速度快多了
f: 查找并打開文件,類似vim的find功能
i: 查找包含本文件的文件
7)vimrc設(shè)置
if has("cscope")
set csprg=/usr/bin/cscope
set csto=1
set cst
set nocsverb
if filereadable("cscope.out")
cs add cscope.out
endif
set csverb
endif
3.taglist
1)到http://www.vim.org/scripts/script.php?script_id=273處下載taglist
2)在根目錄下創(chuàng)建.vim目錄,把taglist.zip解壓到此目錄下
plugin/taglist.vim taglist插件
doc/taglist.txt taglist幫助文件
3)vim操作taglsit命令
:Tlist 打開taglsit
:TlistClose 關(guān)閉taglist
:TlistToggle 在打開和關(guān)閉間切換
(可以在.vimrc中定義一個映射,使用快捷鍵",tl"來打開或關(guān)閉taglist:
let mapleader = ","
map <silent> <leader>tl:TlistToogle<cr>
)
4).vimrc設(shè)置
let Tlist_Ctags_Cmd = '/usr/bin/ctags'設(shè)定LINUX系統(tǒng)中ctags程序的位置
let Tlist_Show_One_File = 1不同時顯示多個文件的tag,只顯示當前文件的
let Tlist_Exit_OnlyWindow = 1如果taglist窗口是最后一個窗口,則退出vim
let Tlist_Use_Right_Window = 1在右側(cè)窗口中顯示taglist窗口
let Tlist_Sort_Type = "name"使taglist以tag名字進行排序
let Tlist_Use_SingleClick = 1單擊tag就跳轉(zhuǎn)
let Tlist_Auto_Open = 1啟動vim后自動打開taglist窗口
let Tlist_Close_On_Select = 1選擇了tag后自動關(guān)閉taglist窗口
let Tlist_WinHeight = ""taglist窗口的高度
let Tlist_WinWidth = ""taglist窗口的寬度
let Tlist_Use_Horiz_Window = 1taglist窗口橫向顯示
let Tlist_File_Fold_Auto_Close =1同時顯示多個文件中的tag時使taglist只顯示當前文件tag,其它文件的tag都被折疊起來
let Tlist_GainFocus_On_ToggleOpen = 1TlistToggle打開taglist窗口時,輸入焦點在taglist窗口中
let Tlist_Process_File_Always = 1taglist始終解析文件中的tag,不管taglist窗口有沒有打開
5)taglist命令
<CR>跳到光標下tag所定義的位置,用鼠標雙擊此tag功能也一樣
o 在一個新打開的窗口中顯示光標下tag
<Space> 顯示光標下tag的原型定義
u 更新taglist窗口中的tag
s 更改排序方式,在按名字排序和按出現(xiàn)順序排序間切換
x taglist窗口放大和縮小,方便查看較長的tag
+ 打開一個折疊,同zo
- 將tag折疊起來,同zc
* 打開所有的折疊,同zR
= 將所有tag折疊起來,同zM
[[ 跳到前一個文件
]] 跳到后一個文件
q 關(guān)閉taglist窗口
<F1> 顯示幫助
4.lookupFile (默認使用tags文件查找文件、緩沖區(qū)、目錄下文件)
1)到http://www.vim.org/scripts/script.php?script_id=1581處下載
2)解壓到.vim目錄下
3)lookupFile需要genutils的支持,到http://www.vim.org/scripts/script.php?script_id=197處下載,然后也解壓在.vim目錄下
4)按F5鍵或輸入":LookupFile"打開查找窗口,然后用"ctrl+n"或"ctrl+p"鍵在列表中選擇
5)輸入":LUBufs"命令可以在緩沖區(qū)中查找
6)輸入":LUWalk"命令輸入目錄名后會在下拉列表中列出這個目錄中的所有子目錄及文件供選擇
7).vimrc設(shè)置
let g:LookupFile_MinPatLength = 2最少輸入2個字符才開始查找
let g:LookupFile_PreserveLastPattern =0 不保存上次查找的字符串
let g:LookupFile_PreservePatternHistory= 1 保存查找歷史
let g:LookupFile_AlwaysAcceptFirst = 1回車打開第一個匹配項目
let g:LookupFile_AllowNewFiles = 0不允許創(chuàng)建不存在的文件
5.colorscheme (vim顔色)
1)到http://www.vim.org/scripts/script.php?script_id=625處下載
2)解壓到.vim目錄下
3)使用命令"colorscheme.vim/colors/文件名"可以修改vimrc的顔色
4)vimrc設(shè)置
colorscheme darkblue
以下是我的vimrc配置文件,僅供參考:
set nu "顯示行號
set background=light"設(shè)定字體顔色模式,light使字體以較暗的顔色顯示出來,適用于亮色系的背景;dark使字體以較亮的顔色顯示出來,適用于暗色系的背景
set cindent "編程時c語言自動縮進
set cino=j1 "設(shè)定c/c++自動縮進的風格
setfileencodings=utf8,gb18030,big5,gb2312 "支持的字符編碼
set formatoptions=rotcql"設(shè)置Vim中文本和注釋的換行方式
set incsearch"輸入查找內(nèi)容的同時,vim就開始對輸入的內(nèi)容進行匹配,并顯示匹配的位置
set hlsearch "對匹配的所有項目進行高亮顯示
set ignorecase "在查找時忽略大小寫
set nocompatible"去掉有關(guān)vi一致性模式,避免以前版本的一些bug和局限
set shiftwidth=4 "反向制表符中的空格數(shù)目
set tabstop=4 "指定tab縮進的字符數(shù)目
set smarttab"解決shiftwidth和tabstop不等時的麻煩
set w
ildmenu "自動補全命令時候使用菜單式匹配列表
set mouse=a "使用鼠標
syntax on "開啟語法高亮
filetype plugin indent on "打開文件類型檢測功能
let mapleader =","
let g:mapleader =","
"tags setup
if has("ctags")
if filereadable("tags")
set tags=tags
endif
endif
"Tlist setup
let Tlist_Ctags_Cmd='/usr/bin/ctags'"設(shè)定linux系統(tǒng)中ctags程序的位置
let Tlist_Sort_Type = "name""使taglist以tag名字進行排序
let Tlist_Show_One_File = 1"不同時顯示多個文件的tag,只顯示當前文件的
let Tlist_Exit_OnlyWindow = 1"如果taglist窗口是最后一個窗口,則退出vim
let Tlist_Use_Right_Window = 1"在右側(cè)窗口中顯示taglist窗口
let Tlist_Use_SingleClick = 1 "單擊tag就跳轉(zhuǎn)
let Tlist_WinWidth = 15 "taglist窗口的寬度
map <silent> <leader>tl:TlistToogle<cr>
"LookupFile setup
let g:LookupFile_MinPatLength = 2"最少輸入2個字符才開始查找
let g:LookupFile_PreserveLastPattern =0 "不保存上次查找的字符串
let g:LookupFile_PreservePatternHistory= 1 "保存查找歷史
let g:LookupFile_AlwaysAcceptFirst = 1"回車打開第一個匹配項目
let g:LookupFile_AllowNewFiles = 0"不允許創(chuàng)建不存在的文件
"cscope setup
if has("cscope")
set csprg=/usr/bin/cscope
set csto=1
set cst
set nocsverb
if filereadable("cscope.out")
cs add cscope.out
endif
set csverb
endif