关于vim的搜索功能

  • 技术
标签:

几个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。