必威电竞|足球世界杯竞猜平台

ctags
來源:互聯網

ctags(Generate tag files for source code)是vim下方便代碼閱讀的工具。盡管ctags也可以支持其它編輯器,但是它正式支持的只有VIM。并且VIM中已經默認安裝了Ctags,它可以幫助程序員很容易地瀏覽源代碼。

最初的Ctags是在BSD Unix 3.0中引入的,由Ken Arnold編寫,Jim Kleckner提供Fortran支持,Bill Joy提供Pascal支持。它是1992年Single Unix規范和XPG4的初始版本的一部分。

簡介

ctags 最先是用來生成C代碼的tags文件,后來擴展成可以生成各類語言的tags, 有些語言也有專有的tags生成工具(比如java的jtags, Python的 ptags)。Ctags是一種編程工具,用于在各種編程語言的源文件和頭文件中生成名稱索引(或標簽)文件,以幫助理解代碼。根據語言的不同,函數、變量、類成員、宏等都可以被索引。

ctags程序還有一些其他實現,包括GNU Emacs附帶的etags和ctags,Exuberant Ctags由Darren Hiebert編寫和維護,Universal Ctags是Exuberant Ctags的一個分支,以及針對特定語言的ctags,如Hasktags為Haskell源文件創建兼容ctags的標簽文件,jsctags是ECMAScript的一個兼容ctags的代碼索引解決方案。

ctags及其后繼者使用的標簽文件格式有多種。原始的ctags和Exuberant/Universal后繼者具有類似的文件格式,標簽文件通常命名為“tags”,而Emacs etags使用的格式則通常命名為“TAGS”。標簽文件是一系列行,每行包含標簽名、文件名和標簽地址。擴展Ctags和Etags格式提供了更多的信息,如附加字段和特殊ASCII字符用于特殊目的。

軟件相關

安裝

到ctags官網 下載源碼,解壓后

$ ./configure

$ make

$ sudo make install

如果你使用的是Ubuntu系統(Debian),那么可以使用如下命令直接安裝:sudo APT install ctags [2]

生成索引文件

在源碼目錄下執行

$ctags –R

“-R”表示遞歸創建,也就包括源代碼根目錄(當前目錄)下的所有子目錄。“*”表示所有文件。這條命令會在當前目錄下產生一個“tags”文件,當用戶在當前目錄中運行vi時,會自動載入此tags文件。Tags文件中包括這些對象的列表:用#define定義的宏枚舉型變量的值函數的定義、原型和聲明名字空間(namespace)類型定義(typedefs)變量(包括定義和聲明)類(class)、結構(struct)、枚舉類型(enum)和聯合(union)類、結構和聯合中成員變量或函數VIM用這個“tags”文件來定位上面這些做了標記的對象。

配置

使用sudo VIM /etc/vim/vimrc 編輯vim的配置文檔,在其中加入如下命令:

set tags=/home/zhouyl/linux-3.4.7/tags;"后面的路徑是使用ctags -R 后生成的tags文件所在目錄,如果需要配置多個tags,只需如下再添加即可

set tags=/home/zhouyl/rap/libpcap-1.3.0/tags;

set autochdir

運用

熟練的運用ctags僅需記住下面七條命令:

1.$ctags –R * ($為Linux系統Shell提示符,這個命令上面已經有所介紹)

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

3.:ts(ts助記字:tagslist, “:”開頭的命令為VI中命令行模式命令)

4.:tp(tp助記字:tagspreview)---此命令不常用,可以不用記

5.:tn(tn助記字:tagsnext) ---此命令不常用,可以不用記

6.Ctrl+ ]跳到光標所在函數或者結構體的定義處

7.Ctrl+ T返回查找或跳轉

“$vi –t tag” :在運行vim的時候加上“-t”參數,例如:[/usr/src]$vim -tmain這個命令將打開定義“main”(變量或函數或其它)的文件,并把光標定位到這一行。如果這個變量或函數有多處定義,

在VI命令行模式 “:ts”命令就能列出一個列表供用戶選擇。

“:tp”為上一個tag標記文件,

“:tn”為下一個tag標記文件。

當然,若當前tags文件中用戶所查找的變量或函數名只有一個,“:tp,:tn”命令不可用。

(最方便的方法是把光標移到變量名或函數名上,然后按下“Ctrl+j”,這樣就能直接跳到這個變量或函數定義的源文件中,并把光標定位到這一行。用“Ctrl+T”可以退回原來的地方。即使用戶使用了N次“Ctrl+]”查找了N個變量,按N次“Ctrl+t”也能回到最初打開的文件,它會按原路返回 。

注意:運行VIM的時候,必須在“tags”文件所在的目錄下運行。否則,運行vim的時候還要用“:set tags=”命令設定“tags”文件的路徑,這樣vim才能找到“tags”文件。在完成編碼時,可以手工刪掉tags文件。

參考資料 >

生活家百科家居網