Emacs:终端vs shell?

时间:2012-09-01 11:53:43

标签: shell emacs terminal

我一直在阅读如何在EMACS中使用shell,就像我发现终端的概念一样,它是与shell交互的旧物理设备的抽象。
但是,现在,我真的无法理解它的使用有哪些优点,所以,请你指出一些情况或例子,在Emacs中应该使用它而不是shell?

4 个答案:

答案 0 :(得分:16)

运行术语缓冲区更接近实际终端。以下是一些差异:

  • Shell模式提供非常有限的终端仿真。利用终端的全屏功能(例如lessmtrmutttop)的程序将无法正常运行。终端模式通常会毫无问题地处理这些问题。
  • 在shell模式下,emacs提供标签完成功能。在终端模式下,shell或命令行程序自己提供它。
  • Shell模式缓冲输入并将其发送到换行符上的进程。终端模式立即将字符发送到正在运行的进程。
  • Shell模式的工作方式与普通的emacs键绑定一样。终端模式不会拦截大多数控制字符,除非您明确将其置于行模式。

答案 1 :(得分:3)

shell就像另一个emacs缓冲区,因此相同的键可以在其他缓冲区中工作。终端不是这样。

答案 2 :(得分:2)

您可以启动清除屏幕的控制台程序,如终端中的mc

答案 3 :(得分:2)

物理终端 已经过时,但替换它们的终端模拟器非常重要,我认为Emacs之外的大多数shell都在一个内部运行,因此它不是一个神秘的概念。在Emacs中也使用一个。

这只与您的问题相关,但The TTY demystified是一篇很有启发性的文章。