为什么 M-RET 会变成 CMj

为什么 M-RET 会变成 CMj

我怀疑这是某种魔法终端定义的问题,但我注意到一些魔法键在终端上不起作用。当我在 org 模式中键入 M-RET 来创建新项目时,我得到的是换行符。Mx describe-key 报告看到的是 CMj。

当然,我可以重新绑定 CMj 来执行预期的操作,但我真的很想知道为什么我输入的内容和远程终端看到的内容之间存在脱节。

编辑:

Ubuntu Hardy Heron 上的 gnome-terminal 通过 ssh 连接到运行 emacs23 的 Debian Stable

答案1

您的 Ubuntu 设置是否有奇怪的键盘布局或者是否重新映射了按键?

转到“系统”,然后转到“首选项”,然后转到“键盘”,并选择“布局”选项卡。我发现通用 104 键键盘效果最好,因为它包含 Win 键(我也有标准多媒体键,它们仍然有效)。无论我使用什么终端应用程序或是否正在使用 SSH,这似乎都能使一切正常工作。

另外,通过检查布局选项确保 Alt 键没有映射到某个东西。

答案2

实际上并没有断开。在幕后,实际上没有“输入”或“返回”之类的东西。有回车符和换行符。

回车是 Ctrl-M。换行是 Ctrl-J。

因此,将 Meta-RET 报告为 Meta-Ctrl-J 是完全合理的。

答案3

我不知道。根据其他人的回复,这似乎是 gnome-terminal 的问题。对于那些想要重新映射键以使某些功能正常工作的人,这里有一个示例代码片段:

;; Workaround for org-mode problem with gnome terminal
;; https://gist.github.com/hanachin/997420
(add-hook 'org-mode-hook
      (lambda ()
        (if window-system
            nil
          (progn
            (define-key org-mode-map "\C-\M-j" 'org-meta-return)
            (define-key org-mode-map "\C-j" 'org-insert-heading-respect-content)))))

相关内容