1

次のバインディングがあります。

M-q   => fill-paragraph
M-S-q => unfill-paragraph

しかし、どちらのキーの組み合わせも最初の:fill-paragraphになるため、Shiftand したがって unfillは無視されるようです。私は自分で秒を設定しました:

(prelude-require-package 'unfill)
(define-key prelude-mode-map "\M-\S-q" nil)  ; don't let prelude dictate it
(global-set-key (kbd "M-S-q") 'unfill-paragraph)

シフトされたバージョンが存在しない場合、シフトされていないシーケンスにフォールバックする Emacs の動作があります (これは良いことのようですが、このケースでは発生しないはずです)。したがって、バインディングがなかった場合M-S-q 、それを押すと が発生するはずfill-paragraphです。これは、私が不幸にも見ているものです。これは、何らかの形で Emacs が 2 番目のバインドについて認識していないことを示唆しています。しかし、私はそれを確認して知っていることをC-h f unfill-paragraph確認しました。から呼び出す と、M-xうまく機能していることがわかります。

なぜ存在はShift無視されるのですか?

(これは Emacs の GUI バージョンであり、私の Shift キーは他の操作に問題なく機能します。)

4

1 に答える 1

3

Emacs には、シフト修飾子が通常の修飾子のように扱われることもあれば、ベース char を変更するために特別に扱われることもあるため、シフトの処理に関していくつかの混乱する問題があります。

この場合、必要になると思います?\M-Q。対照的に、?\C-Qは同じなので、何かを CSq にバインドする?\C-qために使用する必要があります。?\C-S-q

これはおそらくM-x report-emacs-bug.

于 2016-12-08T02:46:10.073 に答える