2012-03-08 91 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默認只允許一個活動的編譯緩衝區。