vim+cscope 的使用

vim+cscope的使用

1. vim的準備

首先 vim --version | grep cscope,看看vim是否支持cscope,如果不支持需要重新安裝vim。最簡單的是在./configure 後加上-enable-cscope,當然可以在Makefile文件(./src/Makefile)中修改(把原來的註釋去掉),這是最根本的:

CONF_OPT_CSCOPE = --enable-cscope

然後安裝:make && make install 

2. 在目錄下建立cscope索引文件

爲了方便使用,編寫了下面的腳本來更新cscope和ctags的索引文件:

#!/bin/sh

find . -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files

cscope -bkq -i cscope.files

ctags -R

這個命令會生成三個文件:cscope.out, cscope.in.out, cscope.po.out。

其中cscope.out是基本的符號索引,後兩個文件是使用"-q"選項生成的,可以加快cscope的索引速度。

這個腳本,首先使用find命令,查找當前目錄及子目錄中所有後綴名爲".h", ".c"和".c"的文件,並把查找結果重定向到文件cscope.files中。

然後cscope根據cscope.files中的所有文件,生成符號索引文件。

最後一條命令使用ctags命令,生成一個tags文件,在vim中執行":help tags"命令查詢它的用法。它可以和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,這樣,你不用切換到你數據庫文件所在的目錄也可以使用它了。

3在vim裏讀代碼

在VIM中使用cscope非常簡單,首先調用“cscope add”命令添加一個cscope數據庫,然後就可以調用“cscope find”命令進行查找了。VIM支持8種cscope的查詢功能,如下:例如,我們想在代碼中查找調用work()函數的函數,我們可以輸入:“:cs find c work”,回車後發現沒有找到匹配的功能,可能並沒有函數調用work()。我們再輸入“:cs find s work”,查找這個符號出現的位置,現在vim列出了這個符號出現的所有位置。我們還可以進行字符串查找,它會雙引號或單引號括起來的內容中查找。還可以輸入一個正則表達式,這類似於egrep程序的功能。

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

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

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

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

t: 查找指定的字符串

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

f: 查找並打開文件,類似vim的find功能

i: 查找包含本文件的文



轉自: http://www.cnblogs.com/zhoulinhu/archive/2011/10/26/2225246.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章