0

在 Haskell 模式中,快捷方式C-c C-=被定义为做某事

尝试这个快捷方式,我意识到 emacs 无法识别该快捷方式C-c C-=

事实上,当我在 emacs 上尝试快捷方式时,C-c =虽然我按下了C- C-=. 我对其他一些符号也有同样的问题,比如“。” 或者 '§'。但捷径喜欢C-c C-lC-c C-c工作。

我尝试删除我的.emacs但我有同样的问题。

一个朋友和我有同样的问题。

我们都在 ArchLinux(64 位)上,我们在控制台中使用 emacs。键盘是一个azerty。

问题来自emacs?拱Linux?

4

2 回答 2

2

您的终端无法发送 Emacs C-=,因此您无法使用该键序列。(如果 Emacs收到它,它识别它,但这不会发生。)

您的选择是:

  • 运行 GUI Emacs。
  • 使用M-x name-of-command RET(对于绑定到您无法使用的键序列的任何命令)。用于C-hm查看主要模式的绑定,或C-hb查看所有当前绑定,以了解这些命令名称是什么。
  • 为有问题的命令创建新的自定义键绑定(即您的终端可以发送到 Emacs 的绑定)。
  • 查找具有增强键序列功能的不同终端仿真器。它们中的绝大多数不会比你拥有的更好,因为它们都遵守它们所模拟的终端的限制。我所知道的最有能力的是http://invisible-island.net/xterm/xterm.html但您可能需要自己编译它,然后期望花费大量时间来配置它。(不过,这不是一个简单的解决方案,而且 xterm 需要一个 GUI 环境,所以运行 GUI Emacs简单得多。)
  • 使用C-x@c<key>而不是C-<key>.

使用最后一个选项,您可以使用终端可以发送的序列来伪造它无法发送的序列。
C-cC-=会成为C-cC-x@c=

如果您真的想使用最后一个选项,您可以设置自定义绑定以简化序列(在某些情况下可能需要避免与现有序列冲突)。有关更多信息,请参阅https://stackoverflow.com/a/24804434/324105的末尾。

于 2014-07-25T20:07:54.873 回答
1

添加到 phils 的帖子 - 另一个选项是 Emacs 包(我编写的),它可以教 Emacs 和终端如何正确识别所有 PC 键盘键和修饰键组合:

https://github.com/Cyber​​Shadow/term-keys

默认配置已经包括编码组合键Ctrl=,如 ,以及类似的变体。

于 2017-12-10T08:38:45.657 回答