更改默认的 emacs 终端转义字符

更改默认的 emacs 终端转义字符

我在 emacs 中使用 Mx term,它让我的一天变得更加明亮!

但,

我可以将默认的终端转义字符 Cc 更改为更方便的字符(例如 Cx)吗?

答案1

我一直在想办法解决这个问题长的时间,因为 term 可以获得正确的制表符补全,甚至可以从子命令中获得,但是由于C-x {left/right}打开了 term,缓冲区命令 ( ) 会发生变化,这真是太烦人了。

今天早上,我相信我成功了。C-x表现正常。M-x需要一个C-x前缀,这仍然有点烦人,但是巨大的尽管如此,还是有所改进。C-c立即导致进入C-c子壳层。

无论如何,不​​用多说,把它贴在你的.emacs,然后比以前更享受术语模式:

(defun term-use-sensible-escape-char (&rest ignored)
  (term-set-escape-char 24))
(advice-add 'term :after #'term-use-sensible-escape-char)

资料来源:

https://emacs.stackexchange.com/questions/18778/why-does-term-char-mode-use-cc-as-its-default-escape-character

https://emacs.stackexchange.com/questions/17289/in-term-mode-how-can-i-make-line-mode-the-default

答案2

你可以让 shell 模式变得更好。在 term 模式下,你可以从字符模式(默认)行模式使用C-c C-j(切换回字符模式C-c C-k)。 行模式更像shell 模式转义字符在哪里C-x。据我了解,使用术语模式它的工作方式更像普通终端,而不是shell 模式. 原则上,你可以在里面使用终端 emacs术语模式并将C-x转义字符传递给该实例 emacs。如果您使用术语模式与另一台机器建立 ssh 会话。

我经常使用序列术语模式对于串行连接,我可以方便地在之间来回切换字符模式行模式频繁地。 字符模式当我想忘记我正在使用 emacs 并只将所有击键发送到机器时,行模式当我想做一些更高级的事情时,例如将会话的一部分复制到另一个缓冲区。

相关内容