轉出處:
如何在vim中使用ctags?之前在《把vim打造成真正的ide》系列裡已經講過大致的ctags在vim中的使用,這篇文章我們就詳細的講一下。
首先要明白,ctags是什麼?
官方的解釋是:產生標記檔案以幫助在原始檔中定位物件。
其生成的標記檔案tags中包括這些物件的列表:
用#define定義的巨集
列舉型變數的值
函式的定義、原型和宣告
名字空間(namespace)
型別定義(typedefs)
變數(包括定義和宣告)
類(class)、結構(struct)、列舉型別(enum)和聯合(union)
類、結構和聯合中成員變數或函式
那麼我們用怎樣的引數來使ctags正常的生成我們需要的tags檔案呢?在這裡我們就不去挨個學習那些枯燥的引數了,直接參看 omnicppcomplete 提供的ctags生成語句:
ctags -r --c++
-kinds=
+px --fields=
+ias --extra=
+q .
每個引數解釋如下:
-r:ctags迴圈生成子目錄的tags
--c++-kinds=+px :ctags記錄c++檔案中的函式宣告和各種外部和前向宣告
--fields=+ias :ctags要求描述的資訊,其中i表示如果有繼承,則標識出父類;a表示如果元素是類成員的話,要標明其呼叫許可權(即是public還是private);s表示如果是函式,則標識函式的signature。
--extra=+q:強制要求ctags做如下操作—如果某個語法元素是類的乙個成員,ctags缺省會給其記錄一行,可以要求ctags對同乙個語法元素再記一行,這樣可以保證在vim中多個同名函式可以通過路徑不同來區分。
ok,那麼tags檔案就生成好啦,利用這個檔案我們可以做很多強大的事情,包括前面用過的外掛程式,omnicppcomplete、taglist、showfunc之類的,都是依賴於它的。
那麼除了外掛程式上的作用外,我們使用者在vim裡面怎麼使用他呢?
其實最簡單的就是:把游標移動到某個元素上,ctrl+],就會跳轉到對應的定義啦。ctrl+o可以回退到原來的地方。
還有乙個操作經常被人忽略,就是,如果當前游標下是個區域性變數,在vim裡輸入gd的話,就會跳到這個區域性變數的定義處,也是非常方便滴~~
另外,tags必須在vim執行的當前目錄,才能在vim裡面正確跳轉,當然也不是沒有辦法解決:settags="tags的檔案路徑"即可,不過如果像我前面文章說的那樣定義了f12來快速生成tags的話(快速連線),也不會經常用到更改路徑吧,哈哈。
順便說一句,tags生成路徑最好不要包含中文哦~~
ok,在vim中使用ctags就到這裡,下次我們會一起看看據說ctags的公升級替代品,cscope~
使用ctags生成tags,在vim中實現跳轉
安裝ctags sudo apt get install ctags生成tags 在函式源 的上級目錄 也不一定是上一級,在需要跳轉到的源 的目錄也可以,r會遞迴地尋找 執行 ctags r生成tags,將生成的tags的路徑新增到vim的配置檔案.vimrc中 vimrc可以在 目錄下自行建立 s...
五 VIM使用手冊 在vim中配置ctags
ctags可以建立原始碼樹的索引,使程式設計師在程式設計時能迅速定位函式 變數 巨集定義等位置去檢視原形 sudo apt get install exuberant ctags 建立原始碼索引,比如我經常需要查閱linux的核心 而這些 放在 home hjw951 arm linux 2.6.1...
vim中ctags的安裝和使用
這兩天看到網上有將vim 改造成功能強大的ide的blog,突然心血來潮,親身經歷了一下。的帖子都不錯,我這裡只是將各種外掛程式分開羅列,然後加上一些使用技巧。希望本文對你有所幫助!外掛程式介紹 ctags工具是用來遍歷源 檔案生成tags檔案,這些tags檔案能被編輯器或其它工具用來快速查詢定位源...