本节将介绍如何使用Ctag工具,来扫描代码库并生成包含关键词索引的标签文件(Tags File)。基于标签文件,Vim可以在标签之间快速跳转,并可以针对标签自动补全。
Ctags是一个开源的命令行工具,用于从代码中索引标签(比如method, class, function等)并生成tags文件。
目前Ctags支持包括Vim在内的41种编程语言。对于vimscript脚本,其中的functions, class, commands, menu, map, variable等语法,将会作为关键字被索引至tags文件中。
对于Mac操作系统,您可以使用包管理器Homebre进行安装:
$ brew install ctags
对于Linux操作系统,您可以使用相应的包管理器进行安装:
$ sudo yum install ctags
对于Windows操作系统,您可以直接将可执行文件放置在 PATH 环境变量指定的目录之内;也可以使用包管理器Chocolatey进行安装:
$ choco install ctags
您可以在操作系统的命令行中使用以下命令,来验证ctags是否安装成功,并获得相关的帮助信息:
$ ctags --help
在Vim中使用以下命令,可以针对指定的文件生成tags文件:
:!ctags filename
你也可以针对当前目录及其子目录中的所有文件生成tags文件:
:!ctags -R .
默认生成的标签文件,是名为tags的文本文件。其开头包含若干行元数据,之后每行包含一个关键字以及与之匹配的文件名和位置信息。其中的关键字,按字母排序;并且以正则表达式作为定位信息。
你可以使用:help tags-file-format
命令,查看标签文件的格式说明。
利用自动命令(autocmd),可以在保存文件时自动更新tags文件:
:autocmd BufWritePost * call system("ctags -R")