![更改默认的 emacs 终端转义字符](https://linux22.com/image/1285452/%E6%9B%B4%E6%94%B9%E9%BB%98%E8%AE%A4%E7%9A%84%20emacs%20%E7%BB%88%E7%AB%AF%E8%BD%AC%E4%B9%89%E5%AD%97%E7%AC%A6.png)
我在 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/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 并只将所有击键发送到机器时,行模式当我想做一些更高级的事情时,例如将会话的一部分复制到另一个缓冲区。