2016年9月5日 星期一

使用 ctags 增強vim 的功能

vim 搭配 ctags 是一款生猛的工具組,可以快速在trace 專案尋找定義和實作,大幅增加vim 瀏覽程式碼的效率。
安裝方法,首先要安裝ctags ,archlinux 的話是ctags,ubuntu 的話是exuberant-ctags,其他的就…自己找。
在專案的根目錄中使用:
ctags -R

產生tags 檔,在瀏覽原始碼的時候,就能用:
Ctrl + ] 跳到該名稱的定義
Ctrl + t 跳回到剛離開的位置

另外在搜尋的時候,找到了一個taglist 的替代品tagbar,可以使用Vundle 安裝:
https://github.com/majutsushi/tagbar
在vimrc 裡面加上:
Plugin 'majutsushi/tagbar'
map <F12> :TagbarToggle<CR>
就能用F12 開關Tagbar 的視窗,第一眼看來還不錯,比taglist 還要漂亮跟清楚很多,據說相對taglist 對Cpp 的支援也更好;雖然以個人之前的經驗,taglist 沒有想像中的好用…也可能是我不會用吧。

有關Vundle 的相關資訊,請參考之前的文章:
http://yodalee.blogspot.tw/2015/03/vundle-vim.html

其實ctags 上使用一直有個問題,導致我之前都不太使用它:一般稍大一點專案都不會是一層,而是程式碼分到樹狀的資料夾中,用ctags -R 只會在根目錄上產生tags 檔,而通常寫code 的時候都不會在根目標上作業,否則要開檔的時候光打目錄就飽了;但如此一來vim 就抓不到tags 檔了。
後來查了一下vim wiki,發現只需要在.vimrc 裡面加上一行文就可以解決這個問題……
http://vim.wikia.com/wiki/Single_tags_file_for_a_source_tree
set tags=tags;
這樣vim 就會一路往上找tags 檔。

ps. 這樣就能修掉也太詭異了吧…

沒有留言:

張貼留言