GNU Global 是一个非常好用的代码索引工具,我在emacs中使用它进行代码跳转,本文介绍了使用中的一个小技巧。

在 Global 进行代码跳转之前需要先建立代码的索引,Global 默认会索引指定目录下所有的源文件,这在大多数情况下是能够满足要求的。但是在开发一些比较庞大的项目时,我们需要同时索引两个目录中的代码;或者我们希望对标准库中的头文件建立索引,因为有些自动补全功能是基于 Global 的索引的;如何能够同时索引不同目录下的文件呢?

可以使用 gtags.files 来为 Global 指定需要索引的文件。

在项目源文件的根目录中建立一个名为 gtags.files 的文件,将需要索引的文件名写进去,这样 Global 在建立索引时只会处理 gtags.files 中记录的文件。

手动添加 gtags.files 显然是比较费力的,可以使用 find 命令搜索指定目录中的文件,在搜索时设定好匹配条件。示例如下:

find dir1 dir2 -name "*.h" -print -o -name "*.cpp" -print > gtags.files