天天看點

vim+cscope+ctags浏覽源碼

vim+cscope+ctags浏覽源碼

轉自 Linux聯盟 : http://www.xxlinux.com/linux/article/development/soft/20071122/12465.html

 一、用vi+cscope編輯檔案

1. cscope 用于生成索引檔案的選項:

-R: 在生成索引檔案時,搜尋子目錄樹中的代碼

-b: 隻生成索引檔案,不進入cscope的界面

-q: 生成cscope.in.out和cscope.po.out檔案,加快cscope的索引速度

-k: 在生成索引檔案時,不搜尋/usr/include目錄

-i: 如果儲存檔案清單的檔案名不是cscope.files時,需要加此選項告訴cscope到哪兒去找源檔案清單。可以使用“-”,表示由标準輸入獲得檔案清單

-I dir: 在-I選項指出的目錄中查找頭檔案

-u: 掃描所有檔案,重新生成交叉索引檔案

-C: 在搜尋時忽略大小寫

-P path: 在以相對路徑表示的檔案前加上的path,這樣,你不用切換到你資料庫檔案所在的目錄也可以使用它了

如果你的源碼中隻含有.c,.h檔案,你可以直接使用 cscope -Rbq

一般使用方法:find ./ -name "*.c" -or -name "*.h" -or -name "*.cpp" -or -name "*.S" | cscope -Rbq

2. 接着你就可以使用vim來打開一個檔案來浏覽編輯代碼了。使用cs(cscope寫)指令來實作函數的調用,

定義查找:

f: 查找并打開檔案,類似vim的find功能

s: 查找C語言符号,即查找函數名、宏、枚舉值等出現的地方

g: 查找函數、宏、枚舉等定義的位置,類似ctags所提供的功能

d: 查找本函數調用的函數

c: 查找調用本函數的函數

t: 查找指定的字元串

e: 查找egrep模式,相當于egrep功能,但查找速度快多了

i: 查找包含本檔案的文

一般使用方式為cs f t var_name

二、用vim + ctags閱讀源代碼

首先我們必需給要閱讀的源代碼建一個或者多個tags檔案,在shell下利用ctags指令給單個檔案建立tags如下:

     ctags  filename.c

要給同一個目錄下的所有檔案建立tags如下:

     ctags -R

這時在tags檔案所在的目錄下打開源檔案閱讀,vim就會自動調用tags檔案。

如果tags檔案不在目前目錄下,可以在指令模式下用下面的指令設定tag檔案

     :set tag=tag_file_path

要在vim下跳到一個函數的定義處可以在指令模式下用下面的指令:

     :tag fuction_name

這個指令将把你帶到fuction_name函數的定義處。

另外,ctrl + ]指令會把目前光标下的單詞作為tag的名字,并直接跳轉

用ctrl + t指令可以回到前一個tag,你可以在ctrl + t前面加一個數字

表示往回跳的層數。

使用Ctrl + g可以顯示目前正在編輯的檔案名,及所在的行号

另外,如果源檔案的排版比較亂的話,可以通過指令gg=G來格式化整個源檔案

下面這幾個設定可以幫助你更好的設定代碼縮進

      :set cindent

      :set shiftwidth=4

      :set tabstop=4