ctags(Generate tag files for source code)是vim下方便代码阅读的工具。尽管ctags也可以支持其它编辑器,但是它正式支持的只有 Vim。并且 Vim 中已经默认安装了 ctags,它可以帮助程序员很容易地浏览源代码。
ctags 最先是用来生成C代码的tags文件,后来扩展成可以生成各类语言的tags, 有些语言也有专有的tags生成工具(比如java的jtags, python的 ptags)。ctags 支持的语言可以通过这个网站查看,目前共41种,基本上主流的 C/C++、Java、Python、C#、JavaScript、MATLAB、Assembler 等语言都是支持的。
Ubuntu系统(Debian),可以直 apt 接安装:
sudo apt-get install ctags
到 ctags 官网下载源码,解压安装:
tar -xzvf ctags-5.8.tar.gz
cd ctags-5.8/
./configure
make
sudo make install
安装完成后执行命令:
ctags --version
若正常输出类似以下的版本信息,则安装成功:
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
Compiled: Dec 14 2021, 22:52:05
Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
Optional compiled features: +wildcards, +regex
RTFM:man ctags
在源码目录下执行
ctags –R .
-R
表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。.
表示当前目录,结合起来就是当前目录及所有子目录下文件。这条命令会在当前目录下产生一个 tags
文件,当用户在当前目录中运行vi时,会自动载入此tags文件。Tags文件中包括这些对象的列表:
类、结构和联合中成员变量或函数 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
注意:运行vim的时候,必须在“tags”文件所在的目录下运行。如果要在该目录的子目录下使用 ctags,可在 Vim 配置文件中再加入:
set tags=./tags;,tags
ctags 最常用的命令:
ctags –R .
上面介绍过了,不再赘述Ctrl+ ]
跳到光标所在变量的定义处Ctrl+ t
返回查找或跳转,从哪里跳过来的跳回哪里,即使用了很多次 Ctrl+]
,该命令也会回到最初一次的位置vi –t tag
找到名为 tag 的变量的定义处g]
列出变量的所有引用供用户选择:ts
tagslist,同 g]
:tp
tagspreview,上一个tag标记文件:tn
tagsnext),下一个tag标记文件以上 :
是 Vim 中从正常模式切换到底行命令模式。在完成编码后,可以直接删掉tags文件。
https://baike.baidu.com/item/ctags/3470337?fr=aladdin
https://www.bilibili.com/video/BV1PL411M7bg?from=search&seid=12655157522675339145&spm_id_from=333.337.0.0