繁体   English   中英

命令行全文索引?

[英]Command-line fulltext indexing?

我们有一个巨大的,旧的,可怕的代码库,几乎不可能在需要时找到它。 我们正在努力改进它,当然......但我经常发现自己正在做大量的递归greps来搜索文件的内容以找到使用的地方。

是否有一个工具可用于在目录中构建文本文件的全文索引,然后从命令行查询?

喜欢可以在用户空间中运行并且不需要守护进程的东西。 我们的开发服务器上有很多用户,所以我想要一些可以搜索我的代码库实例的东西。

我是“gid”(又名“id-utils”)的忠实粉丝:

用法很简单:

  1. 使用您最喜欢的包管理器安装id-utils(例如“sudo apt-get install”或“yum”)

  2. “cd”到源目录的根目录并运行“mkid”

  3. 您可以从命令行使用它

  4. 您也可以从“vim”或任何其他工具中使用它。

Russ Cox写了一系列描述Google Code Search算法如何工作的文章 他在一组命令行工具中重新实现了算法的简化版本,该工具可以在本地代码库上进行快速正则表达式搜索

另一种方法是使用类似ctags的东西来创建代码中使用的标识符索引。 许多编辑器(包括我使用的Vim)可以使用此标签文件快速跳转到标识符的定义。

cd /path/to/project
ctags -R 

这将创建一个vim将使用的tags文件,然后:

vim -t someFunctionName

将在函数定义中打开vim!

还有一些键盘快捷键可以简化生活。

CRTL+] will jump to the definition of the method under the cursor 
CRTL+t will go back

我有类似的需要在大型C ++项目上工作。 在调查了一些工具之后,我发现id-utils是最好的选择,因为它在构建索引和搜索模式方面非常快。

基于id-utils,我制作了一个命令行工具和vim插件来解决我的需求:

https://github.com/fcamel/gj

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM