9

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

有没有一种工具可以用来在目录中构建文本文件的全文索引,然后从命令行进行查询?

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

4

4 回答 4

5

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

用法很简单:

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

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

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

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

于 2012-08-05T05:25:18.353 回答
2

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

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

于 2012-08-05T05:27:50.937 回答
1
cd /path/to/project
ctags -R 

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

vim -t someFunctionName

将在函数定义中打开vim!

还有一些键盘快捷键可以让生活更简单。

CRTL+] will jump to the definition of the method under the cursor 
CRTL+t will go back
于 2012-08-06T11:58:57.097 回答
0

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

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

https://github.com/fcamel/gj

希望能帮助到你。

于 2013-11-04T16:11:43.117 回答