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-modeと関係があります。cua-modeを無効にすると、問題は解決します。残念ながら、cua-modeを無効にすることは望ましい解決策ではありません。

編集:これはEmacsのバグです。バグ#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-select-modeに設定すると無効にできますnil

于 2012-04-11T14:02:03.343 に答える