为了加快我的 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
然后按下 键:这将插入开始按键序列的转义字符,后面跟着组成按键序列的其他字符。例如,当我按下 时,我使用的一个终端会发送四个字符^[
、O
、5
,因此我将在我的 中包含以下行:H
Ctrl+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/CyberShadow/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