Exuberant Ctags
1.1、Exuberant Ctags简介

Ctags是一个用来为C语言源文件中的标识符(关键字、变量、函数名、结构体成员、宏定义等)创建索引文件(tag file)的程序。 这些索引让我们能够快速便利地在编辑器或其它工具中定位到指定标识符的定义。

CtagsKen Arnold编写并首先出现在BSD UNIX中。

大多数的UNIXUnix-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

1.2、通过包管理器安装Exuberant Ctags
操作系统包管理器安装命令
Windowsscoopscoop install ctags
WindowsChocolateychoco install -y ctags
macOSHomeBrewbrew install ctags
GNU/LinuxLinuxBrewbrew install ctags
aptsudo apt-get install -y exuberant-ctags
PCLinuxOSaptsudo apt-get install -y ctags
CentOSyumsudo yum install -y ctags-etags
dnfsudo dnf install -y ctags-etags
openSUSEzyppersudo zypper install -y ctags
Alpine Linuxapksudo apk add ctags

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm ctags

注意:

macOS系统默认是安装了Ctags的。 我们自己安装完Exuberant Ctags后,需要将ctags命令指向新的版本,将下面的配置写入环境变量配置文件中:

alias ctags='/usr/local/bin/ctags'
1.3、使用Exuberant Ctags
1.3.1、ctags --help

查看帮助。

1.3.2、ctags --list-languages

列出支持的语言。

1.3.3、ctags --list-maps

列出支持的语言和对应的文件后缀名。

1.3.4、ctags --list-kinds

列出支持的语言和对应的类型。

1.4.5、--language-force

指定查找哪种语言的tag

示例:

ctags --language-force=java HelloWorld.java

只生成HelloWorld.java这个文件里面的tag

1.4.6、-R

当最后一个参数传入的是一个文件夹的时候,就会递归查找子文件夹里面的文件。

示例:

ctags --language-force=java -R .

从当前文件夹开始查找,所有的Java源码,并生成tags文件。