我已经开始使用带有 -nw 选项的 emacs - ctrl-home 和 ctrl-end 不起作用

我已经开始使用带有 -nw 选项的 emacs - ctrl-home 和 ctrl-end 不起作用

为了加快我的 emacs 工作流程,我正在尝试使用 emacs -nw 而不是在 X-Windows 模式下运行。

Ctrl-HOME 和 Ctrl-END 根本不起作用,我尝试编辑 .keymap 文件,但不幸的是,按照在线建议操作后,没有任何效果。例如

http://www.emacswiki.org/emacs/CuaMode

我通常启用 cua 模式进行 Shift 选择,但这也会在 Shift 向上/向下翻页时失败,例如

如果能让所有这些在 -nw 模式下正常工作就太好了,我欢迎来自 emacs 用户的建议。

  • 安装=Linux Mint 9
  • Shell = zsh

答案1

不幸的是,不同的终端会为诸如 之类的键发送不同的转义序列Ctrl+Home,而 Emacs 并不了解所有这些序列。您可以通过function-key-map(或local-function-key-map在 Emacs 23 下) 声明其他转义序列。这会告诉 Emacs,这些转义序列实际上是单个功能键的编码。

要找出某个键发送的转义序列,请按下 ,C-q然后按下 键:这将插入开始按键序列的转义字符,后面跟着组成按键序列的其他字符。例如,当我按下 时,我使用的一个终端会发送四个字符^[O5,因此我将在我的 中包含以下行:HCtrl+Home.emacs

(define-key function-key-map "\e05H" [C-home])

\e是写转义符最易读的方式。对要支持的其他键执行相同操作。

如果最新版本的 Emacs 不支持这些键,最好告知开发人员您的终端发送的键序列。

答案2

我几乎总是用 来运行 emacs -nw。为了滚动到文件末尾,我使用M-S-,M-S-.来返回到开头(可能更容易记住Alt-<Alt->)。可能不如C-Home和方便C-End,但我更喜欢从终端工作(实际上是在tmux会话,无论它的价值如何)。

答案3

我编写了一个 Emacs 包,它可以教 Emacs 和终端如何正确识别所有 PC 键盘键和修饰键组合:

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

对于 cua 模式和 Shift 选择,能够使用 Ctrl + Shift + 箭头键无疑是一种进步。

答案4

帮自己一个忙,做一下教程:)

emacs 默认使用经典的行编辑器绑定。

Ctrl a  << to start of line
Ctrl e  >> to end of line
Ctrl k  cut to end of line
Ctrl y  yank that back
alt y   roll back one more yank (repeat) try it out to get it.

它们是我最常用的,并且它们也可以与 readline (大多数 shell)一起使用

通过 Google 或在您的系统上搜索备忘单。

例如

 /usr/share/emacs/23.4/etc/refcards/refcard.pdf

相关内容