http://www.sudu.cn/info/html/edu/20060102/294929.html
在vim中用了一陣子ctags,確實美中不足。ctags只能根據調用函數的地方尋找定義該函數的地方,不能根據定義函數的地方尋找都有哪些地方調用了
該函數。於是又學習了cscope。Cscope在首頁上說它具有毋庸置疑的UNIX血統,早在PDP-11的時代就已經在貝爾實驗室開發出來了。我的
Linux是SuSE10.0,系統內建的有cscope軟體。
一、將
http://cscope.sourceforge.net/cscope_maps.vim
另存新檔檔案~/.vim/plugin/cscope_maps.vim
二、因為cscope將“ctrl+空格”作為映射鍵,但是這樣會調出IME,因此將~/.vim/plugin/cscope_maps.vim檔案中的替換為(或者是你沒有映射過的你喜歡的快速鍵)
三、進入C語言原始碼目錄,建立符號表:
mishuang@msh:~/linux/linux0.11/source-0.11> cscope -R
ctr-D退出後,目前的目錄會多一個檔案cscope.out,這個檔案比tags大多了。
四、使用指南
1)使用下面的命令直接進入main函數定義的地方,如果有多個的話,輸入索引號,斷行符號。
mishuang@msh:~/linux/linux0.11/source-0.11> vi -t main
2)將游標停留在一個函數或變數上,"ctrl+]",將直接跳轉到定義該函數的地方。
3)將游標停留在一個函數或變數上,"ctrl+\"再輸入s,這樣就會出現所有調用、定義該函數的地方,輸入索引號,斷行符號即可。
4)將游標停留在一個函數或變數上,再輸入s,這樣就會出現所有調用、定義該函數的地方,輸入索引號,斷行符號後會以水平方式在另外一個視窗顯示。
5)將游標停留在一個函數或變數上,再輸入s,這樣就會出現所有調用、定義該函數的地方,輸入索引號,斷行符號後會以垂直方式在另外一個視窗顯示。
6)ctrl+t回到原來跳轉前的地方,連續按兩下’’可以再回去。
附:
vim分割視窗的操作
:split 水平(上下)分割視窗
:vsplit或者CTRL-W v 垂直(左右)分割視窗
:new 水平分割視窗,建立空檔案
:vnew 垂直分割視窗,建立空檔案
vim多視窗操作命令
:qall 退出所有視窗
:wall 儲存所有視窗
:wqall或者:xall 儲存並退出所有視窗
:wqall!或者:xall。 儲存並退出所有視窗,如果有的檔案唯讀,不需要先設定寫入權限
:qall! 強制退出所有視窗
CTRL-W W 在視窗間移動
CTRL-W O 關閉其他所有視窗
參考文獻:
1)
http://cscope.sourceforge.net
2)
http://cscope.sourceforge.net/cscope_vim_tutorial.html
3)
~/.vimrc
4)
對~/.vimrc的改進