如何在M-x find-grep中使用ack?

时间:2011-10-18 19:03:25

标签: emacs find grep ack find-grep

此处提出问题以供参考。只有上帝知道为什么,但从前这对我不起作用,促使我提出这个问题,今天它确实如此。典型的血腥emacs。通常情况下,一旦你有点摔跤,这是一种完全的快乐。 YMMV。

这两个命令:

find ~/myco -type f -print0 | xargs -0 -e grep -nH -e "setjmp"

ack --no-heading --no-color "setjmp" ~/myco

在我看来,终端会产生非常相似的结果。

然而,当我尝试在emacs中使用第二个作为M-x find-grep的命令时,它只打印结果,而不是像第一个那样超链接和突出显示它们。

任何人都知道发生了什么?在命令行使用ack进行的初步实验表明,它可以将查找和grep从水中吹出来,所以能够从emacs中使用它也会很棒。

3 个答案:

答案 0 :(得分:3)

在Windows上我从find-grep调用ack,例如像这样:

c:/xampp/perl/bin/perl.exe c:/bin/ack-standalone.txt --type-set java=.java --type=java -i information

它完美无缺。结果在grep缓冲区中链接并着色。我不知道为什么它不适合你,但我可以说它在这里有用。

emacs版本:GNU Emacs 23.2.1

ack版本:1.94

答案 1 :(得分:1)

Emacs尝试在find-grep的缓冲区中显示grep-mode的输出。显然grep-mode(惊讶,惊讶)不理解ack的输出格式。使用专用的ack-mode

答案 2 :(得分:0)

我发现这个ack-mode工作得更好,开箱即用。一些更好的着色本来不错,但至少它是可读的:

https://github.com/sudish/ack-mode.el