我正在尝试在Emacs中进行基本移动的新绑定。从[{3}}和this page借用,此重新映射按预期工作:
(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中的一个错误。它被追踪为错误#11221,标题'cua-mode激活移位绑定的标记'。从邮件列表上的讨论来看,听起来会有一个修复cua-base.el。
答案 0 :(得分:3)
它确实可能由shift-select-mode
触发,但它看起来像一个错误:shift-select-mode
应该注意命令绑定到移位键的事实。尝试在不使用CUA的情况下重现问题,然后请使用M-x report-emacs-bug
报告。
答案 1 :(得分:2)
那是因为shift selection。您可以将shift-select-mode
设置为nil
来停用它。