在vim中使用cscope尋找調用、定義函數和變數的地方__函數

來源:互聯網
上載者:User

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的改進

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.