Ctags
是一个用来为C语言源文件中的标识符(关键字、变量、函数名、结构体成员、宏定义等)创建索引文件(tag file
)的程序。 这些索引让我们能够快速便利地在编辑器或其它工具中定位到指定标识符的定义。
Ctags
由Ken Arnold
编写并首先出现在BSD UNIX中。
大多数的UNIX和Unix-like系统中都已经内置了Ctags
,当然,也包括了macOS。
然而Ctags
功能比较简单,支持的语言也少(如不支持C++、Java等语言), 所以就出现了更强大的Exuberant Ctags
。
Exuberant Ctags
最初由Darren Hiebert
编写并随Vim发布, 但在Vim6
时独立出来为一个项目,它提供了对更多的编程语言(支持多达41种语言,并可以添加自定义语言)。
Exuberant Ctags
兼容原始Ctags
的索引文件格式, 除此之外很多的Vim插件也只支持Exuberant Ctags
。
Exuberant Ctags
官网:http://ctags.sourceforge.net
操作系统 | 包管理器 | 安装命令 |
---|---|---|
Windows | scoop | scoop install ctags |
Windows | Chocolatey | choco install -y ctags |
macOS | HomeBrew | brew install ctags |
GNU/Linux | HomeBrew | brew install ctags |
apt | sudo apt-get install -y exuberant-ctags | |
PCLinuxOS | apt | sudo apt-get install -y ctags |
CentOS | yum | sudo yum install -y ctags-etags |
dnf | sudo dnf install -y ctags-etags | |
openSUSE | zypper | sudo zypper install -y ctags |
Alpine Linux | apk | sudo apk add ctags |
pacman | sudo pacman -Syyu --noconfirm |
注意:
macOS系统默认是安装了Ctags
的。 我们自己安装完Exuberant Ctags
后,需要将ctags
命令指向新的版本,将下面的配置写入环境变量配置文件中:
alias ctags='/usr/local/bin/ctags'
查看帮助。
列出支持的语言。
列出支持的语言和对应的文件后缀名。
列出支持的语言和对应的类型。
指定查找哪种语言的tag
。
示例:
ctags --language-force=java HelloWorld.java
只生成HelloWorld.java
这个文件里面的tag
。
当最后一个参数传入的是一个文件夹的时候,就会递归查找子文件夹里面的文件。
示例:
ctags --language-force=java -R .
从当前文件夹开始查找,所有的Java源码,并生成tags
文件。