1. 程式人生 > >vim下用ctags+cscope查詢切換

vim下用ctags+cscope查詢切換

i.             about ctags

1安裝ctags

sudo apt-get install ctags

2生成tags檔案

在原始碼根目錄下執行ctags -R命令來為程式原始碼生成標籤檔案,其-R選項表示遞迴操作,同時為子目錄也生成標籤檔案,vim利用生成的標籤檔案,可以進行檢索,並在不同的檔案、元素之間來回切換。

3指定tags檔案位置

可以手動指定tags檔案,vim命令列中輸入或者修改.vimrc檔案 set tags=./tags

這個命令讓vim在當前目錄裡尋找tags檔案

tags檔案只能檢視函式,類或變數的定義,而沒有被呼叫資訊,如果要知道一個函式在什麼地方被使用,需要使用cscope

工具;新增的tags最好是source code的索引,對於include標頭檔案索引沒有效果。

ii.             aboutcscope

1安裝cscope

sudo apt-get install cscope

2知識點

1) 生成索引檔案cscope -Rbq則生成cscope.in.outcscope.out cscope.po.out三個檔案

在命令列執行:cs add path/cscope.out 新增索引檔案的位置,或者加到.vimrc檔案中

2) cscope的用法 :cs find {querytype} {name}

{querytype} 為下面的命令字

0

s: 查詢該C語言符號

1 g: 查詢定義

2 d: 查詢本函式呼叫的函式

3 c: 查詢呼叫指定函式的函式

4 t: 查詢字串

6 e: 查詢 egrep 模式

7 f: 查詢檔案

8 i: 查詢包含指定檔案的檔案

這些都是命令列的命令,敲起來太慢,可以在.vimrc中定義這些命令的鍵盤快捷鍵,例如快捷鍵<c-\>s (敲入ctrl+\的組合鍵然後再敲s)組合,即實現查詢C語言符號的命令,就定義在下面的第一行,也可以根據自己的習慣,定製自己的快捷鍵。

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>$<CR>

nmap <C-\>d :cs find d<C-R>=expand("<cword>")<CR><CR>