emacs可以调用shell并执行命令 - 它们可以作用于Emacs缓冲区吗?

时间:2010-08-24 21:12:51

标签: shell emacs buffer

我用Alt-! (Alt-Bang)在Emacs中很多。我用它的一件大事就是

Alt-! cat $logfile | grep 'this' # show me one kind of event

或有时

Alt-! cat $logfile | grep 'this' | wc -l # count that one event's occurrences

两件事:

1)此提示没有制表完成:为什么不呢?

2)如果不是 $ logfile ,我想扫描其中一个Emacs缓冲区怎么办?

2 个答案:

答案 0 :(得分:3)

要扫描Emacs缓冲区,请使用M-|而不是M-!:它将区域作为命令的输入传递。如果希望命令的输出替换区域,请使用M-1 M-|

对于您提到的特定命令,如果要查看所有匹配项,请使用M-x grep。或者您可以打开它并查看与M-x occur匹配的内容。

答案 1 :(得分:1)

Alt-|确实是shell-command-on-region

带有(ny)数字前缀的

(例如C-u 1 Alt- |)区域被结果替换,否则出现在新缓冲区中