1

我正在为 Emacs 中的基本运动试验新的绑定。借用此页面ErgoEmacs,此重新映射按预期工作:

(global-set-key (kbd "M-i")   'previous-line)
(global-set-key (kbd "M-k")   'next-line)
(global-set-key (kbd "M-j")   'backward-char)
(global-set-key (kbd "M-l")   'forward-char)

但是定义 Shift-Alt 组合会产生不必要的副作用。

(global-set-key (kbd "M-I")   'cua-scroll-down)
(global-set-key (kbd "M-K")   'cua-scroll-up)
(global-set-key (kbd "M-J")   'backward-word)
(global-set-key (kbd "M-L")   'forward-word)

运行describe-key( C-h k) 表明绑定成功。这些绑定按应有的方式移动点,但由于某种原因,它将标记设置在我的原始位置,并在我移动点时给我一个突出显示的区域。

我该如何纠正?

编辑:这与 cua 模式有关。当我禁用 cua 模式时,问题就消失了。不幸的是,禁用 cua 模式并不是一个理想的解决方案。

编辑:这是 Emacs 中的一个错误。它被跟踪为 bug#11221,标题“cua-mode 激活了移位绑定的标记”。从邮件列表上的讨论来看,听起来 cua-base.el 将得到修复。

4

2 回答 2

3

它确实很可能是由 触发的shift-select-mode,但它看起来像一个错误:shift-select-mode应该注意命令绑定到移位键的事实。尝试在不使用 CUA 的情况下重现问题,然后请使用M-x report-emacs-bug.

于 2012-04-11T14:19:52.273 回答
2

那是因为shift selectionshift-select-mode您可以通过设置来禁用它nil

于 2012-04-11T14:02:03.343 回答