Emacs C-。 不在docker工作

我使用GNU Emacs,通常像emacs -nw一样启动终端版本(而不是窗口GUI版本)。

我在LaTeX写学校论文,所以我使用flyspell-mode在emacs中进行拼写检查。 这在GUI版本中工作正常,但在终端中,我遇到了击键C-.问题C-.Ctrl )。 在tty中,这没有任何作用,在terminatorgnome-terminal ,这只是输入一个“。”。

我该怎么做才能使它在窗口版本中执行它的操作(显示拼写错误的单词的拼写建议)?

编辑:如果这很重要,我使用Ubuntu 12.04与Emacs 23.3.1(我认为默认来自12.04回购)。

看起来这个问题的重要部分已在评论中得到解答,但为了解决你好奇的根本原因,我认为ctrl-。 由于终端仿真器的某些限制,在终端中不起作用。 在标准终端中,ctrl被定义为发送按下减去64键的键的ASCII码(这就是ctrl-J(74)发送换行符(10)和ctrl-I(73)发送tab(9)的原因,例如)。 由于周期的ASCII代码是46,减去64将给出-18,这是无效的,因为它是否定的,并且没有负的ASCII代码,因此没有任何东西供emacs接收和理解。

当您在窗口模式下运行emacs时,会绕过终端仿真器机制,而是使用更强大的X11键盘处理,它可以处理更多模糊的击键(而不是将每个击键减少到一个ASCII字符,程序接收原始密钥加上所有适用的修饰符,分别)。 因此,基于tty的emacs处理ctrl-可能是不可能的。 除非您对终端模拟器(也可能是emacs)进行自定义修改。

虽然上面的答案很好地解释了为什么它不起作用,但它并没有真正解决如何使它工作。 对于iTerm2您可以通过为转义序列添加键映射来解决此问题。 我想在terminatorgnome-terminal会有类似的东西