几个tag
调查了好一阵子,总算弄清楚了几个东西的差别,简单记一下,几个tag:
- ctags,vim用的
- etags,emacs用的
- cscope,生成的索引相比上面两个索引,信息会多一些,并且包含了一个搜索的指令,可以搜索函数在哪里被调用,以及可以做全局搜索,但是仅限于C/C++
- gtags,和cscope差不多,提供了gtags生成索引,和gtags-cscope搜索索引。
gtags
:: GTAGS:所有变量,函数定义的相关信息
:: GRTAGS:所有变量,函数被引用的相关信息
:: GPATH:源代码中每个文件的信息
跟cscope差不多,不过gtags支持的语言更多,并且和编辑器无关,所以自己也提供了一个搜多功能。
综上所以现在最先进的索引系统自然是gtags的索引系统,再展示一个这个表格(https://github.com/oracle/opengrok/wiki/Comparison-with-Similar-Tools)可以看到
本来在写这篇博客之前我是打算再深入了解一下gtags的使用细节,然后看到上面的对比我懵了,OpenGrok好像也不错诶,gtags的搜索支持正则,OpenGrok的支持AND和OR这些搜索语法,并且OpenGrok还多支持一个CVS的历史文件,这个功能有点诱人。
我还得考虑一下用哪个。
End。