在Emacs中搜索目录

时间:2012-09-02 22:19:09

标签: eclipse search emacs grep

我最近从Eclipse切换到Emacs,我真正想念的一个功能是Eclipse文件搜索。它允许您针对特定搜索词非常准确地搜索整个项目(尽管速度非常慢)。在Emacs中,我一直在使用M-x rgrep,但它似乎没有给出可靠的结果。例如,如果我搜索0.1,它将不会返回包含'0.1'(由引号括起来的匹配)的代码行的结果。

有人可以建议更准确地替代rgrep吗?

4 个答案:

答案 0 :(得分:2)

我建议使用“igrep”lib来搜索文件,你可以找到它here。 要开始使用,请将此行添加到.emacs文件中(不要忘记将igrep.el添加到emacs-path,例如可以是〜/ .emacs.d /):

(require 'igrep)
(global-set-key "\C-cf" 'igrep-find)

因此,您可以使用[C-cf]开始搜索,它会在搜索中询问文件名的模式,并查询搜索。希望它有所帮助。

答案 1 :(得分:2)

我建议ack。它可以智能地忽略您不想搜索的文件(例如版本控制目录)。

答案 2 :(得分:1)

如果您正在处理大型项目,例如Linux内核或安卓,我建议使用beagrep。

桌面搜索引擎beagle和grep一起使用,因此可以非常快速地完成常见的编程grep任务。例如,在Android源代码中使用readlink的grepping可能需要半个多小时,而beagrep只需要半秒钟。

查看我的github page

答案 3 :(得分:0)

M-x multi-occur-in-matching-buffers使用正则表达式选择要搜索的缓冲区,使用第二个正则表达式搜索您要查找的项目。

使用emacs的一个常见工作流程是,在处理该项目时,永远(或很少)关闭项目中的缓冲区,因此在您进行了一段时间的黑客攻击后,您可能仍会打开大多数文件。当然,如果你不这样做,那么使用multi-occur...就不那么有用了。