###簡介## ctags(Generate tag files for source code)是 vim下方便代碼閱讀的工具。儘管 ctags 也能夠支持其它編輯器,可是它正式支持的只有 vim。而且 vim 中已經默認安裝了Ctags,它能夠幫助程序員很容易地瀏覽源代碼。 ctags 最早是用來生成C代碼的 tags 文件,後來擴展成能夠生成各種語言的 tags, 有些語言也有專有的 tags 生成工具(好比 java 的 jtags, python 的 ptags).
###用途### 標籤檢索,特別適用於大型項目的源代碼。 ###安裝### $ sudo apt-get install ctags
說明:以上針對 Ubuntu/Debian 系統,其餘的系統按照如下步驟:
(1) 官網下載源碼
(2) 解壓縮後執行命令java
$ ./configure $ make $ make install
###ctags配置### 使用sudo vim /etc/vim/vimrc 編輯vim的配置文檔,在其中加入以下命令:
(1) set tags=/home/zhouyl/linux-3.4.7/tags; "後面的路徑是使用ctags -R 後生成的tags文件所在目錄,若是須要配置多個tags,只需以下再添加便可
(2) set tags=/home/zhouyl/rap/libpcap-1.3.0/tags;
(3) set autochdir ###使用### 在源碼目錄下執行 ctags -R *python
root@thinkLinux:linux-2.6.32.63# ctags -R * root@thinkLinux:linux-2.6.32.63# ls arch Documentation init MAINTAINERS REPORTING-BUGS tags block drivers ipc Makefile samples tools COPYING firmware Kbuild mm scripts usr CREDITS fs kernel net security virt crypto include lib README sound
能夠發現,目錄下生成了一個 tags (標籤)文件,即目錄索引 「-R」 表示遞歸建立,也就包括源代碼根目錄(當前目錄)下的全部子目錄。「*」 表示全部文件。這條命令會在當前目錄下產生一個 「tags」 文件,當用戶在當前目錄中運行 vi/vim 時,會自動載入此 tags 文件。舉個例子:鍵入 vim 後出現
在 vim 文件切換底行模式,輸入 : cstag 關鍵字 Tags文件中包括這些對象的列表:用 #define 定義的宏枚舉型變量的值函數的定義、原型和聲明名字空間(namespace)類型定義(typedefs)變量(包括定義和聲明)類(class)、結構(struct)、枚舉類型(enum)和聯合(union)類、結構和聯合中成員變量或函數 vim 用這個 「tags」 文件來定位上面這些作了標記的對象。
(1) ctrl + } :連續查找關鍵字 要先將光標移動到關鍵字處
(2) ctrl + T : 返回上一次查找關鍵字
(3) 查找時出現多頁關鍵字處理:兩次 ESC 進入選擇界面
linux
root@thinkLinux:linux-2.6.32.63# vim -t task_struct
進入指定函數 task_struct,以下:
不經常使用命令
(1) $ vi –t tag (請把 tag 替換爲您欲查找的變量或函數名)
(2) :ts (ts 助記字:tagslist, 「:」 開頭的命令爲 vi/vim 中命令行模式命令)
(3) :tp (tp 助記字:tagspreview) --- 此命令不經常使用,能夠不用記
(4) :tn (tn 助記字:tagsnext) --- 此命令不經常使用,能夠不用記
###注意### 在 vi/vim 命令行模式 「:ts」命令就能列出一個列表供用戶選擇。
「:tp」爲上一個tag標記文件,
「:tn」爲下一個tag標記文件。
固然,若當前tags文件中用戶所查找的變量或函數名只有一個,「:tp,:tn」命令不可用。程序員
###總結## 文章講的不是很細,更多內容須要動手體驗。但願你們善於利用 shell 命令,它所帶來的高效會出乎你的意料。天天一個 Linux 命令,不見不散。shell