13

org-mode中,按M-S-RET(meta-shift-return) 将TODO在新行上创建一个新行。这个键序列M-RET通过我的终端发送到 emacs。我已经检查了这个C-h c ESC-S-RET,它M-RET is undefined在迷你缓冲区中返回。

我正在使用 Snow Leopard 和在 Terminal.app 中运行的 Emacs 23.2.1。没有RET在终端键盘首选项中定义序列的选项。

知道是什么导致了失踪SHIFT吗?解决方法?

4

4 回答 4

7

你可以让 Emacs 假装它得到S-RETC-x @ S RET(注意大写S)。

这也适用于添加 control、meta、alt、hyper 或 super 修饰符;类型C-x @ C-h为绑定列表。Emacs 手册中的修改键部分也提到了这一点。

于 2012-08-09T16:35:05.833 回答
5

通常,通过终端发送大量击键是根本不可能的,因为终端模拟了一个旧协议,该协议只允许 256 个单独的键(或者可能只有 128 个)。

很有可能,当您按下 S-RET 时,Terminal.app 会执行与按下 RET完全相同的操作。因此 Emacs 无法区分这两种情况。

于 2010-08-20T15:10:39.097 回答
3

与其他问答的交叉链接:

如果您使用的是 xterm,那么该modifyOtherKeys选项可能会促进该绑定。有关详细信息,请参阅以下内容:

在 VT100/xterm 终端(Mac OS X 的终端)中向 Emacs 发送“C-(”?

我怀疑 Emacs 默认会识别这些代码,但如果不是,请参见input-decode-map此处所述:Binding M-<up> / M-<down> in Emacs 23.1.1

于 2011-10-09T19:50:42.707 回答
2

请在此处查看 TTY 的说明和替代快捷方式。

其中一些在 Ubuntu Linux 的终端中对我有用(本地和通过 SSH),但并非所有这些似乎都有效。例如,提供的替代方案S-RET(我希望运行org-table-copy-down)似乎org-clone-subtree-with-time-shift由于某种原因而运行。但是,我发现替代列表很有用,尤其是带有M-前缀的替代列表。例如ESC UP用于M-UP在表格中移动文本。

于 2011-10-09T12:30:26.473 回答