我正在为 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 将得到修复。