2012-03-08 90 views
5

我想运行一个shell命令并在emacs的可点击缓冲区中获取其输出。该命令是一个shell脚本,最终运行一堆源文件。它的输出看起来像grep的输出。它包括文件名和行号。我希望能够点击一个文件或站在它上面输入,并让emacs带我到文件中的那一行。 我想我需要一些自定义函数来做到这一点,但我是emacs的新手,所以我还不知道如何编写它。在emacs中运行命令,在可点击缓冲区中获取输出

回答

7

M-x grep键入您的命令而不是默认值。

M-X中肯 “的grep。*空” 发现grep-use-null-device如果你需要不发送 “的/ dev/null的”

+0

这似乎是一个有趣的方向。问题是emacs将/ dev/null作为最后一个参数附加到我的命令中。我认为它希望grep在一些文件集上运行,并且由于我的命令在其参数中不包含任何文件,因此它会将/ dev/null附加为默认文件。 – 2012-03-08 17:57:01

+1

M-x apropos“grep。* null”找到'grep-use-null-device'。 – 2012-03-08 18:19:35

+0

是的,它的工作原理。非常感谢! – 2012-03-08 18:25:01

1

的另一种方法是运行使用shell-commandM-命令!,并使用M-x编译模式将输出缓冲器的模式更改为compilation-mode

另一种替代方法是使用M-x编译运行该命令。这样做的缺点是,Emacs默认只允许一个活动的编译缓冲区。