4

我正在维护一些中型 C++ 项目的分支(每个分支约 15k 个文件)。很多时候,我必须在所有项目文件中搜索给定的字符串或正则表达式。目前我正在使用 Total Commander,它具有我想要的所有功能(区分大小写、正则表达式、文件名掩码),但是这个工具每次都会扫描所有文件,所以它需要太多时间。

你知道任何文本搜索工具,它可以预先索引整个源代码树并允许快速查找模式吗?返回所有匹配的文件是必须的,预览找到的模式环境会很好。当然,当某些事情发生变化时,索引必须立即更新。

Visual Studio 搜索是不够的,它只扫描源文件(不是元数据或自定义资源)。

这种工具存在吗?我正在使用 Windows XP。

编辑:我找到了非常有用的工具,请参阅我自己的答案

4

8 回答 8

4

我在这里找到了非常有用的工具:http ://code.google.com/p/ndexer/

我把它推荐给了每一个人!

于 2009-05-15T15:08:53.653 回答
2

cscope 能够索引 c 文件,在某种程度上也能够索引 c++。我个人使用的 KDE 前端 KScope 比 cscope 的 ui 用户友好。

除此之外,您可能想看看OpenGrok

于 2009-05-07T11:27:56.883 回答
1

我不确定(我没有经验),但我会试试 Eclipse CDT。它为您的所有源编制索引以快速查找符号,类似于 Eclipse JDT(Java 工具)。

于 2009-05-09T17:36:27.607 回答
0

回避该问题的一种直接方法是将所有源代码放在 RAM 磁盘上。通过以这种方式加速文件 IO,您将看到性能的大幅提升,而无需更改您的工具链。

于 2009-05-07T11:22:37.190 回答
0

请参阅 http://aaron.oirt.rutgers.edu/myapp/docs/W1300.testAndDemo 并点击“搜索演示”链接到代码树搜索演示。 这将完全满足您的要求,它是 WHIFF 的标​​准演示组件。您必须添加 Pygments 插件才能从二进制文件中提取感兴趣的字符串(或将整个文件读取为“文本”)——开箱即用的索引器将忽略 Pygments 无法识别的文件。有一个简单的技巧可以让它“吃掉所有东西”——如果你想了解更多信息,请告诉我。

用于搜索的安装和命令行界面在http://aaron.oirt.rutgers.edu/myapp/docs/W1300_1000.search中有描述。

于 2009-05-07T13:39:29.657 回答
0

您可以尝试 Google 桌面搜索,或者将Luceneclucene(移植到 c++ 的 lucene)作为通用索引工具。

于 2009-05-07T14:01:38.667 回答
0

我知道您不一定需要 webapp,但请尝试Open Grok

于 2009-05-07T17:50:28.553 回答
0

Windows 索引服务似乎符合您的所有条件。

于 2009-05-07T17:53:14.430 回答