Source Insight是一款編輯器,擁有強大的功能,但適用於Windows系統,那麼Ubuntu系統該使用哪種編輯器呢?Vim就是Linux下很好的編輯器,下面小編就給大家介紹下如何在Ubuntu上安裝vim插件。
source insight是windows下的優秀編輯器,適合閱讀管理代碼,主要有以下功能:
查找函數,變量或者宏的定義。
查找函數,變量或者宏的引用位置。
查找函數被調用的位置
查找某個符號在工程內的所有匹配
由於unix哲學主張一個工具只做好一件事情,所以linux下並沒有這種集多樣功能於一體的軟件。vim是非常優秀的編輯器,本文介紹如何通過安裝插件將vim武裝成和source insight一樣甚至更強大的工具。
我的環境是ubuntu12.04 LTS+vim version 7.3
1. ctags
ctags插件用來查找函數,變量或者宏的定義,ubuntu下可以非常方便的安裝,
sudo apt-get install exuberant-ctag
在源文件目錄下執行命令
ctags -R
會生成一個tags文件,裡面包含了所有源文件的符號信息。在vim中,快捷鍵ctrl+]會跳到當前函數的定義處。為了方便生產tags,設置快捷鍵F5生成tag,將下面命令加入到~/.vimrc
nnoremap 《F5》 :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q 。《CR》
nnoremap 表示vim普通模式的鍵映射,
--c++-kinds=+p : 為標簽添加函數原型(prototype)信息
--fields=+iaS : 為標簽添加繼承信息(inheritance),訪問控制(access)信息,函數特征(function Signature,如參數表或原型等)
--extra=+q : 為類成員標簽添加類標識
如果項目有多層文件結構,一般只在根目錄生成一個tag文件,那麼子目錄訪問不到tag文件,在子目錄中直接打開源文件將找不到函數的tag,一個方便的做法是在.vimrc中將tag加到tags的查找路徑中,每個項目一項。
“project1”
set tags+=/project1/tags
ctags的快捷鍵:
ctrl+] 切換到定義處
g+ctrl+] 如果多處匹配,列出匹配tag列表供選擇
count+ctrl+t 後退count個tag
:count+tag 前進count個tag
:ts 列出匹配tag列表,存在多個匹配時
:tn 跳到下一處匹配tag
:tp 跳到上一處匹配tag
:tf 跳到地一個匹配tag
:tl 跳到最後一個匹配tag
:set tags? 查看tags文件路徑
2.cscope
Ctags只能找到符號定義的地方,如果要像sourceinsight一樣,具備查找類似函數調用查找,符號引用查找等高級功能,就要借助於cscope了。Cscope是類似於ctags的工具,不過它的功能比ctags強大多了。
在當前源文件目錄下執行
cscope–Rbq
其中
-R:遞歸處理子層目錄
-b:生成數據庫後自動退出
-q:生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
vim打開源文件後,增加cscope數據庫到當前環境中
:csadd cscope.out
 123 共3頁