vim 中Ctags的安裝和使用

『插件介紹』 shell

Ctags工具是用來遍歷源代碼文件生成tags文件,這些tags文件能被編輯器或其它工具用來快速查找定位源代碼中的符號(tag/symbol),如變量名,函數名等。好比,tags文件就是Taglist和OmniCppComplete工做的基礎。
vim

『下載和安裝』 編輯器

1、我是使用apt-get安裝的: 函數

sudo apt-get install ctags 工具

2、下載源碼安裝(網上提供的方法) 編碼

        1)從http://ctags.sourceforge.net/下載源代碼包後,解壓縮生成源代碼目錄, spa

        2)而後進入源代碼根目錄執行./configure, .net

        3)而後執行make, 插件

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

『基本功能使用方法』

經常使用命令列表:

        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文件中包括這些對象的列表:

  1. 用#define定義的宏
  2. 枚舉型變量的值
  3. 函數的定義、原型和聲明
  4. 名字空間(namespace)
  5. 類型定義(typedefs)
  6. 變量(包括定義和聲明)
  7. 類(class)、結構(struct)、枚舉類型(enum)和聯合(union)
  8. 類、結構和聯合中成員變量或函數

VIM用這個「tags」文件來定位上面這些作了標記的對象。


剩下的命令就是定位這些對象的方法:

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

[/usr/src]$ vim -t main

這個命令將打開定義「main」(變量或函數或其它)的文件,並把光標定位到這一行。


若是這個變量或函數有多處定義,在VI命令行模式

「:ts」命令就能列出一個列表供用戶選擇。    

「:tp」爲上一個tag標記文件,

「: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

相關文章
相關標籤/搜索