Emacs和长Shell命令

5
有没有一种方法可以运行 shell 命令,将输出显示在新缓冲区中,并逐步显示该输出? Eshell 和其他 Emacs 终端仿真器在这方面做得很好,但我看不出任何脚本的方法。
我想做的是编写一些小的 elisp 函数来运行单元测试等操作,并观察输出流入缓冲区。
elisp 函数 shell-command 接近我想要的,但它在进程完成时会一次性显示所有输出。

3
不完全符合你的需求,但 M-x compile 命令可以逐步显示编译进度。 - user319799
2个回答

4

doublep所述,有M-x compile,还有简单的M-x shell,在该shell中可以运行任何你想要的东西。


1

你也可以使用comint-run来执行命令,而不需要先启动子shell。我相信M-x shell使用了一些修改过的comint模式,所以这与那并没有太大区别。但是如果你想直接调用一个程序,并将其输入和输出绑定到一个缓冲区,那么comint-run就是要调用的函数。它有点棘手,所以请阅读文档:C-h f comint-run


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接