如何在终端中向Emacs发送S-RET?

14
org-mode中,按下M-S-RET(meta-shift-return)会在新行上创建一个新的TODO。这个键序列通过终端将M-RET发送到emacs。我用C-h c ESC-S-RET检查了一下,在迷你缓冲区中返回M-RET未定义
我使用运行在Terminal.app中的Emacs 23.2.1的Snow Leopard。在终端键盘首选项中没有定义RET序列的选项。
有什么想法是什么导致了缺少SHIFT?有什么解决方法吗?
5个回答

7
你可以使用 C-x @ S RET 让 Emacs 模拟接收到了 S-RET(请注意大写的 S)。
这个方法同样适用于添加控制键、元键、Alt 键、hyper 键或 super 键。输入 C-x @ C-h 可以查看所有绑定键的列表。Emacs 手册中的《修改键》部分也提到了这一点。

1
这个答案提供了一个技巧:将终端的(特别是iTerm)M/S-RET映射到Emacs将处理为M/S-RET的内容。https://emacs.stackexchange.com/a/62538/29629 - anon2328

5

通常情况下,很多按键在终端中无法发送,因为终端模拟了一种旧协议,只允许256个独立的按键(或者可能只有128个)。

当你按下S-RET时,Terminal.app很可能会完全像按下RET一样处理。 因此,Emacs无法区分这两种情况。


我担心可能是这种情况。我将暂时保留这个问题,看看是否有人知道我应该模拟哪个终端才能获得 S-RET。也许不可能。目前,终端报告自己为 xterm-color,但我可以在配置选项中更改它。不知道这是否会解决任何问题。 - jrhorn424

3

2

请点击这里查看TTY的解释和备选快捷键。

在Ubuntu Linux的终端(本地和SSH)中,其中一些快捷键对我有用,但并非所有都有效。例如,S-RET的备选项(我期望运行org-table-copy-down)似乎会因某种原因而运行org-clone-subtree-with-time-shift。然而,我发现备选列表很有用,特别是那些以M-前缀开头的。例如,使用ESC UP替代M-UP在表格中移动文本。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接