Linux 下閱讀源碼工具(Vim + ctags+Cscope)

來源:互聯網
上載者:User

標籤:

0. 寫在前面的廢話

開發環境遷移到了Ubuntu下,所有windows下好用的工具都要找個替代品。

windows下一直用 souce Insight 來閱讀源碼,需要在Ubuntu下找個替代品。

上網看了看,貌似Vim + Ctags + Cscope不錯,安裝來試試 o(∩∩)o

 

1. 安裝

在我用的ubuntu中,這三個軟體都不是內建的,需要手動安裝,很簡單用apt-get命令安裝就好了

$ sudo apt-get install vim

$ sudo apt-get install ctags

$ sudo apt-get install cscope

如:

 

2. 使用

2.1 建立索引

在能自由搜尋之前,需要在你想要查看源碼的根目錄下建立索引,也就是執行兩條命令:

$ ctags -R

$ cscope-indexer -r

2.2 在vim 中使用ctag

1) 跳轉到指定的函數進入vim後,用 “:tag func_name“ 跳到函數func_name處。使用tag
命令時,可以使用TAB鍵進行匹配尋找,繼續按TAB鍵向下切換。
某個函數有多個定義時
:tag
跳到第一個定義處,優先跳轉到當前檔案
:tnext
跳到第一個
:tfirst
跳到前count個
:[count]tprevious
跳到後count個
:[count]tnext
跳到最後一個
:tlast
你也可以在所有tagname中選擇:
:tselect tagname

如果想跳到包含block的標識符:“tag /block” 然後用TAB鍵來選擇。這裡‘/‘就是告訴vim
‘block‘是一個語句塊標籤。
2)用“CTRL + ]“快速鍵,跳轉到游標所在函數標識符的定義處。
3)使用“CTRL + T”退回上層。如果想在以write_開頭的標識符中選擇一下, :tselect /^
write_ 這裡,‘^‘表示開頭,同理,‘$‘表示末尾。多個同名的標識符

2.3 在vim中使用csope

好吧,貌似應該叫在csope中使用vim,前提條件還是要先建立索引(cscope-indexer -r),然後在源碼根目錄執行csope命令

$ csope   ,效果如

若干種尋找方式,隨便輸入焦點尋找內容,如i2c,按斷行符號鍵,效果如下:

選擇想要開啟的檔案,輸入前面序號即可在vim中開啟它,之後就可以在vim中使用ctags快速的在函數間跳來跳去的了^_^

 

 

兩面板切換: tab

cscope退出: ctrl + d

 

4.參考連結

http://www.360doc.com/content/10/0928/13/3564483_57033907.shtml ---- 使用Vim+Ctags+Cscope閱讀原始碼

http://blog.csdn.net/jsufcz/article/details/3988883  ----- 使用Vim+Ctags+Cscope閱讀原始碼

http://www.linuxidc.com/Linux/2011-04/34788p4.htm  ------ Cscope的使用(領略Vim + Cscope的強大魅力)

 

Linux 下閱讀源碼工具(Vim + ctags+Cscope)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.