0

I am trying to use org-mode and whenever I press Crtl+return emacs does C-J instead. I know this because when I use c-h k and then press crtl+return, emacs shows: "It is bound to C-j." Is there anyway I can make it register ctrl+return so I can insert headings?

I am using emacs23 through the terminal on ubuntu 12.04 x64. When I do this on my windows machine it does insert a new heading.

4

3 回答 3

2

恐怕对于大多数终端来说,这不是一个有效的序列,所以他们根本无法将它发送到 Emacs。

如果您改为运行 GUI Emacs,则键绑定将起作用。

Thomas Dickey 的 xterm是我所知道的唯一可以(我认为)支持所有正常 Emacs 绑定的终端软件。如果您可以编译它,那么您可以尝试使用以下方法.Xdefaults-(hostname)(或者.Xresources如果您在编辑后重新合并)以获得基本支持:

XTerm*metaSendsEscape: true
XTerm*modifier: meta
XTerm*modifyOtherKeys: 1

您实际上需要XTerm*modifyOtherKeys: 2完全扩展序列(否则您仍然无法键入类似的C-M-%),但默认情况下该设置会破坏大多数键序列,现在我无法告诉您如何正确配置该设置(我见过的唯一示例——在wiki上提到的 xterm-extras.el并在easymacs下载中可用——对我不起作用)。

我主要使用 GUI Emacs,但我想让它正常工作,所以如果有人在 xterm-extras.el 或类似方面取得了成功,请说出来。

于 2013-06-24T03:32:36.687 回答
2

可能。正如@phils 所说,C-Enter对于绝大多数终端仿真器来说,这通常不是一个有效的序列。这是因为当您按下某个键或组合键时,终端会向相关应用程序发送一系列字符。按a发送a,而Enter发送CR- 回车(也称为^M,\r\015)。

现代终端中实际实现的序列大多只是它们模拟的早期物理终端(尤其是 VT-100)的遗留物。这些机器不允许Ctrl与每个键一起使用,例如功能键,因此C-F1是不可能的,也没有定义转义序列。同样, 没有控制序列C-Enter,因此当您按下它时,终端会忽略Ctrl并只看到Enter

但是,您可以在终端中定义自己的转义序列,然后您可以将其绑定到 emacs 中的正确组合键。例如,请参见此处。我能够使用这种方法能够使用C-Enter. 不幸的是,这仍然有点痛苦,因为它需要大量配置,并且您可能仍然无法使用某些序列(C-M-%对我来说在 konsole 中不起作用)。与@phils 一样,我已经开始使用 GUI,但我希望更好地与我的终端集成。

于 2013-06-24T12:34:23.983 回答
0

如果你愿意安装 Emacs 包并配置你的终端,我写了一个 Emacs 包,它可以教 Emacs 和终端如何正确识别所有 PC 键盘键和修饰键组合:

https://github.com/Cyber​​Shadow/term-keys

它的默认配置允许对组合进行编码CtrlReturn,这允许 Emacs 将其与CtrlJ.

于 2017-12-10T08:33:59.777 回答