我最近从 Eclipse 切换到 Emacs,我真正怀念的一个特性是 Eclipse 文件搜索。它允许您非常准确地(尽管速度很慢)搜索整个项目的特定搜索词。在我一直在使用的 Emacs 中,M-x rgrep
但它似乎没有给出可靠的结果。例如,如果我搜索 0.1,它将不会返回包含 '0.1' 的代码行的结果(用引号括起来的匹配项)。
任何人都可以提出更准确的替代方案rgrep
吗?
我推荐ack。它可以智能地忽略您不想搜索的文件(例如版本控制目录)。
我推荐使用“igrep”库来搜索文件,你可以在这里找到它。要开始使用将此行添加到您的 .emacs 文件(不要忘记将 igrep.el 添加到 emacs-path,它可以是 ~/.emacs.d/ 例如):
(require 'igrep)
(global-set-key "\C-cf" 'igrep-find)
因此,您可以使用 [C-cf] 开始搜索,它在搜索中询问文件名的模式,并在查询中进行搜索。希望能帮助到你。
如果您正在处理 linux 内核或 android 等大型项目,我建议您使用 beagrep。
它需要桌面搜索引擎 beagle 和 grep 一起使用,因此可以非常快速地完成常见的编程 grep 任务。例如,在 android 源代码中对 readlink 进行 grepping 可能需要半个多小时,而使用 beagrep 只需要半秒。
查看我的github 页面。
M-x multi-occur-in-matching-buffers
使用一个正则表达式来选择您要搜索的缓冲区,并使用第二个正则表达式来搜索您要查找的项目。
使用 emacs 的一个常见工作流程是在处理该项目时从不(或很少)关闭该项目中的缓冲区,因此在您研究了一段时间之后,您可能仍然会打开大多数文件。当然,如果你不这样工作,那么使用就没有多大multi-occur...
用处了。