一、用vi+cscope編輯文件
1. cscope 用于生成索引文件的選項(xiàng):
-R: 在生成索引文件時(shí),搜索子目錄樹中的代碼
-b: 只生成索引文件,不進(jìn)入cscope的界面
-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
-k: 在生成索引文件時(shí),不搜索/usr/include目錄
-i: 如果保存文件列表的文件名不是cscope.files時(shí),需要加此選項(xiàng)告訴cscope到哪兒去找源文件列表。可以使用“-”,表示由標(biāo)準(zhǔn)輸入獲得文件列表
-I dir: 在-I選項(xiàng)指出的目錄中查找頭文件
-u: 掃描所有文件,重新生成交叉索引文件
-C: 在搜索時(shí)忽略大小寫
-P path: 在以相對(duì)路徑表示的文件前加上的path,這樣,你不用切換到你數(shù)據(jù)庫(kù)文件所在的目錄也可以使用它了
如果你的源碼中只含有.c,.h文件,你可以直接使用 cscope -Rbq
一般使用方法:find ./ -name "*.c" -or -name "*.h" -or -name "*.cpp" -or -name "*.S" | cscope -Rbq
2. 接著你就可以使用vim來打開一個(gè)文件來瀏覽編輯代碼了。使用cs(cscope寫)命令來實(shí)現(xiàn)函數(shù)的調(diào)用,
定義查找:
f: 查找并打開文件,類似vim的find功能
s: 查找C語(yǔ)言符號(hào),即查找函數(shù)名、宏、枚舉值等出現(xiàn)的地方
g: 查找函數(shù)、宏、枚舉等定義的位置,類似ctags所提供的功能
d: 查找本函數(shù)調(diào)用的函數(shù)
c: 查找調(diào)用本函數(shù)的函數(shù)
t: 查找指定的字符串
e: 查找egrep模式,相當(dāng)于egrep功能,但查找速度快多了
i: 查找包含本文件的文
一般使用方式為cs f t var_name
二、用vim + ctags閱讀源代碼
首先我們必需給要閱讀的源代碼建一個(gè)或者多個(gè)tags文件,在shell下利用ctags命令給單個(gè)文件建立tags如下:
ctags filename.c
要給同一個(gè)目錄下的所有文件建立tags如下:
ctags -R
這時(shí)在tags文件所在的目錄下打開源文件閱讀,vim就會(huì)自動(dòng)調(diào)用tags文件。
如果tags文件不在當(dāng)前目錄下,可以在命令模式下用下面的命令設(shè)置tag文件
:set tag=tag_file_path
要在vim下跳到一個(gè)函數(shù)的定義處可以在命令模式下用下面的命令:
:tag fuction_name
這個(gè)命令將把你帶到fuction_name函數(shù)的定義處。
另外,ctrl + ]命令會(huì)把當(dāng)前光標(biāo)下的單詞作為tag的名字,并直接跳轉(zhuǎn)
用ctrl + t命令可以回到前一個(gè)tag,你可以在ctrl + t前面加一個(gè)數(shù)字
表示往回跳的層數(shù)。
使用Ctrl + g可以顯示當(dāng)前正在編輯的文件名,及所在的行號(hào)
另外,如果源文件的排版比較亂的話,可以通過命令gg=G來格式化整個(gè)源文件
下面這幾個(gè)設(shè)置可以幫助你更好的設(shè)置代碼縮進(jìn)
:set cindent
:set shiftwidth=4
:set tabstop=4
Linux聯(lián)盟收集整理 ,轉(zhuǎn)貼請(qǐng)標(biāo)明原始鏈接
Linux聯(lián)盟