vim中ctags的安裝和使用

2021-06-17 22:19:45 字數 2715 閱讀 7380

這兩天看到網上有將vim 改造成功能強大的ide的blog,突然心血來潮,親身經歷了一下。

網友的帖子都不錯,我這裡只是將各種外掛程式分開羅列,然後加上一些使用技巧。

希望本文對你有所幫助!

『外掛程式介紹』

ctags工具是用來遍歷源**檔案生成tags檔案,這些tags檔案能被編輯器或其它工具用來快速查詢定位源**中的符號(tag/symbol),如變數名,函式名等。比如,tags檔案就是taglist和omnicppcomplete工作的基礎。

一、我是使用apt-get安裝的:

sudo apt-get install ctags

2)然後進入源**根目錄執行./configure,

3)然後執行make,

4)編譯成功後執行make install。

當然也可以使用網路安裝apt-get install ctags

『基本功能使用方法』

常用命令行表:

1.  $ ctags –r *      ($ 為linux系統shell提示符)

2.  $ vi –t tag         (請把tag替換為您欲查詢的變數或函式名)

3. :ts                                (ts 助記字:tags list, 「:」開頭的命令為vi中命令列模式命令)

4. :tp                                (tp 助記字:tags preview)

5. :tn                                (tn 助記字:tags next)

6. ctrl + ]

7. ctrl + t

命令解釋:

「$ ctags –r *」:「-r」表示遞迴建立,也就包括源**根目錄(當前目錄)下的所有子目錄。「*」表示所有檔案。這條命令會在當前目錄下產生乙個「tags」檔案,當使用者在當前目錄中執行vi時,會自動載入此tags檔案。

tags檔案中包括這些物件的列表:

用#define定義的巨集

列舉型變數的值

函式的定義、原型和宣告

名字空間(namespace)

型別定義(typedefs)

變數(包括定義和宣告)

類(class)、結構(struct)、列舉型別(enum)和聯合(union)

類、結構和聯合中成員變數或函式

vim用這個「tags」檔案來定位上面這些做了標記的物件。

剩下的命令就是定位這些物件的方法:

「$ vi –t tag」:在執行vim的時候加上「-t」引數,例如:

[/usr/src]$ vim -t main

這個命令將開啟定義「main」(變數或函式或其它)的檔案,並把游標定位到這一行。

如果這個變數或函式有多處定義,在vi命令列模式

「:ts」命令就能列出乙個列表供使用者選擇。   

「:tn」為下乙個tag標記檔案。當然,若當前tags檔案中使用者所查詢的變數或函式名只有乙個,「:tp,:tn」命令不可用。

最方便的方法是把游標移到變數名或函式名上,然後按下「ctrl+]」,這樣就能直接跳到這個變數或函式定義的原始檔中,並把游標定位到這一行。用「ctrl+t」可以退回原來的地方。即使使用者使用了n次「ctrl+]」查詢了n個變數,按n次「ctrl+t」也能回到最初開啟的檔案,它會按原路返回 。

更多功能通過命令man ctags或在vim命令列下執行help ctags查詢。

注意:執行vim的時候,必須在「tags」檔案所在的目錄下執行。否則,執行vim的時候還要用「:settags=」命令設定「tags」檔案的路徑,這樣vim才能找到「tags」檔案。

在完成編碼時,可以手工刪掉tags檔案(帚把不到,灰塵不會自己跑掉^_^)。

在使用的時候盡量在最頂層目錄下索引,不然在字目錄索引上層目錄的函式定義不可行

『閱讀說明』

1)vim存在多個配置檔案vimrc,比如/etc/vimrc,此檔案影響整個系統的vim。還有~/.vimrc,此檔案只影響本使用者的vim。而且~/.vimrc檔案中的配置會覆蓋/etc/vimrc中的配置。這裡我們只修改~/.vimrc檔案。

2)vim的外掛程式(plugin)安裝在vim的runtimepath目錄下,你可以在vim命令列下執行"set rtp「命令檢視。這裡我們選擇安裝在~/.vim目錄,沒有就建立乙個。

3)當本文說」在vim命令列下執行cmdxx命令「時,意思是指在vim的命令列模式下執行cmdxx命令,即在vim的正常模式下通過輸入冒號":"進入命令列模式,然後緊接著輸入命令cmdxx。在後文描述中都會省略冒號":"輸入。

4)如果沒有說明「在vim命令列下執行某命令」,則是在shell中執行該命令。

5)如果命令中間被空白符間隔或有與正文容易混淆的字元,我會用雙引號將命令與正文區分。所以讀者在實際操作時,不要輸入命令最前面和最後面引號。

6)本文關於組合快捷鍵的描述,形如a-b形式的快捷鍵表示同時按下a鍵和b鍵,而形如"a-b c"形式的快捷鍵,則表示先同時按下a鍵和b鍵,然後放開ab鍵,再按下c鍵。

7) 本人使用的系統是ubunt 11.10 ,vim版本是vi improved 7.3

vim 中Ctags的安裝和使用

這兩天看到網上有將vim 改造成功能強大的ide的blog,突然心血來潮,親身經歷了一下。的帖子都不錯,我這裡只是將各種外掛程式分開羅列,然後加上一些使用技巧。希望本文對你有所幫助!外掛程式介紹 ctags工具是用來遍歷源 檔案生成tags檔案,這些tags檔案能被編輯器或其它工具用來快速查詢定位源...

vim 中Ctags的安裝和使用

這兩天看到網上有將vim 改造成功能強大的ide的blog,突然心血來潮,親身經歷了一下。的帖子都不錯,我這裡只是將各種外掛程式分開羅列,然後加上一些使用技巧。希望本文對你有所幫助!外掛程式介紹 ctags工具是用來遍歷源 檔案生成tags檔案,這些tags檔案能被編輯器或其它工具用來快速查詢定位源...

vim 中Ctags的安裝和使用

外掛程式介紹 ctags工具是用來遍歷源 檔案生成tags檔案,這些tags檔案能被編輯器或其它工具用來快速查詢定位源 中的符號 tag symbol 如變數名,函式名等。比如,tags檔案就是taglist和omnicppcomplete工作的基礎。一 我是使用apt get安裝的 sudo ap...