VIM + CTags/CScope

來源:互聯網
上載者:User

使用vim + cscope/ctags,就可以實現SourceInsight的功能,以後可以不再用盜版SouceInsight讀代碼了。
按 照vim裡cscope的參考手冊(在vim中執行":help cscope"命令),把cscope功能加到.vimrc裡後(需要你的vim在編譯時間選擇了"--enable-cscope"選項,否則你需要重新 編譯vim),配置就算完成了。然後用下面的命令產生代碼的符號索引檔案:

    cscope -Rbkq

這個命令會產生三個檔案:cscope.out, cscope.in.out, cscope.po.out。
其中cscope.out是基本的符號索引,後兩個檔案是使用"-q"選項產生的,可以加快cscope的索引速度。
上面所用到的命令參數,含義如下:

-R: 在產生索引檔案時,搜尋子目錄樹中的代碼
-b: 只產生索引檔案,不進入cscope的介面
-k: 在產生索引檔案時,不搜尋/usr/include目錄
-q: 產生cscope.in.out和cscope.po.out檔案,加快cscope的索引速度

接下來,就可以在vim裡讀代碼了。
不 過在使用過程中,發現無法找到C++的類、函數定義、調用關係。仔細閱讀了cscope的手冊後發現,原來cscope在產生索引檔案時,只搜尋類型為 C, lex和yacc的檔案(尾碼名為.c, .h, .l, .y),C++的檔案根本沒有產生索引。不過按照手冊上的說明,cscope支援c++和Java語言的檔案。
於是按照cscope手冊上提供的方法,先產生一個檔案清單,然後讓cscope為這個列表中的每個檔案都產生索引。
為了方便使用,編寫了下面的指令碼來更新cscope和ctags的索引檔案:

#!/bin/sh

find . -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files
cscope -bkq -i cscope.files
ctags -R

這個指令碼,首先使用find命令,尋找目前的目錄及子目錄中所有尾碼名為".h", ".c"和".cc"的檔案,並把尋找結果重新導向到檔案cscope.files中。
然後cscope根據cscope.files中的所有檔案,產生符號索引檔案。
最後一條命令使用ctags命令,產生一個tags檔案,在vim中執行":help tags"命令查詢它的用法。它可以和cscope一起使用。

cscope的首頁在:http://cscope.sourceforge.net/

在vim的網站上,有很多和cscope相關的外掛程式,可以去找一下你有沒有所感興趣的。搜尋結果在這裡:
http://www.vim.org/scripts/script_search_results.php?keywords=cscope&script_type=&order_by=rating&direction=descending&search=search

相關文章

聯繫我們

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