【发布时间】:2013-10-15 21:33:38
【问题描述】:
我正在尝试将M-<up> 和M-<down> 分别绑定到scroll-down-line 和scroll-up-line,如下所示:https://stackoverflow.com/a/16229080/562139。
这就是我的.emacs:
;; Key bindings
(global-set-key (kbd "M-g") 'goto-line)
;; Scroll line by line
(global-set-key (kbd "M-<down>") 'scroll-up-line)
(global-set-key (kbd "M-<up>") 'scroll-down-line)
问题:
滚动键绑定不生效,而goto-line 的绑定生效。
但是,当我运行 M-x scroll-down-line 时,emacs 会提示我并说
"你可以用
运行命令"
注意:
当我直接在迷你缓冲区中运行global-set-key (kbd "M-<down>") 'scroll-up-line) 或(global-set-key (kbd "M-<up>") 'scroll-down-line) 时,绑定就会生效!但是,当我执行后者时,我似乎从眼角注意到,按下M-<up> 实际上会发送类似ESC ESC-<up> 的内容。
我被骗了。什么给了?
注意:我在终端中运行 emacs 24.3(通过 OSX 上的 iTerm,Option 键映射到 ESC+)通过 SSH 连接到 RHEL5 虚拟机。)
更新
我按照this answer 中的建议,发现按 M-
ESC <up> (translated from ESC M-[ A) runs the command
scroll-down-line, which is an interactive compiled Lisp function.
It is bound to <M-up>, ESC <up>.
(scroll-down-line &optional ARG)
我将尝试将该键序列绑定到函数并检查结果。
【问题讨论】:
-
可能被系统拦截了。
M-<up>通常是用于在文件资源管理器中导航到父目录的键绑定。不过不确定 Finder。 -
@wvxvw 当我直接在 minibuffer 中运行绑定命令时它可以工作。如果 OSX 中的某些东西捕获了这个密钥,在这种情况下它不会也不起作用吗?
-
我觉得我的问题和这个一样(上次没找到):stackoverflow.com/questions/4351044/…
标签: emacs key-bindings dot-emacs