此处提出问题以供参考。只有上帝知道为什么,但从前这对我不起作用,促使我提出这个问题,今天它确实如此。典型的血腥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中使用它也会很棒。
答案 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工作得更好,开箱即用。一些更好的着色本来不错,但至少它是可读的: