为了在终端中使用 emacs,我想使用 这样的组合键Control-'。但是当我尝试该组合键时,它只会'
在命令行中写入 。所有标点符号都会发生同样的事情。有办法解决这个问题吗?
答案1
因为ASCII 终端的工作方式、Ctrl-'等此类组合毫无意义。
单引号的 ASCII 值为 39 10,由于39
10 and
63
10仍然等于 39 10,因此结果仍为单引号。只有 ASCII 码在 64 10和 126 10之间(含)的字符才会产生有意义的控制代码(0 10到 31 10)。为了简单起见,我省略了一些细节。
当您不使用 ASCII 终端时,您可以映射这些组合键,因为您正在使用键盘扫描码或某些等效码。
答案2
我编写了一个 Emacs 包,它可以教 Emacs 和终端如何正确识别所有 PC 键盘键和修饰键组合:
https://github.com/CyberShadow/term-keys
默认配置已经包含编码Ctrl`(以便它可以与`或区分开来CtrlShift`,并且可在 Emacs 中绑定到C-`
)。