どのプログラム モードにも適合するように、改善のためにカスタム モードを定義したいと考えています。そして、このすべてのモードのキー バインディングを定義する必要があります。私は最小限の労力でキー バインディングを宣言するためdefine-minor-mode
に withを使用することにしました。:keymap
kbd マクロは、このキー シーケンスのマジック ナンバーを与えてくれcomment-or-uncomment-region
ました。"C-;"
[67108923]
動作しないサンプルを書きました
(define-minor-mode
my-mode
nil nil
:keymap '(
( [67108923] . comment-or-uncomment-region )
)
)
モードを登録してオンに切り替えましたが、押すС-;
とキーシーケンスが定義されていないという通知が表示されます
その後、私はスクラッチ バッファに書き込んで、global-set-key
期待どおりに実行された単純なものを評価しました。
(global-set-key [67108923] 'comment-or-uncomment-region )
を押すC-;
と、期待されるcomment-or-oncomment-region
動作が生成されるようになりました。
経由で機能情報を検索して問題をデバッグしようとしましたC-h f
。奇妙な出力を生成し、異なるキー シーケンスに2 回comment-or-oncomment-region
バインドされます。
It is bound to C - ;, C-;
最初の 1 つはマイナー モードのトグルで表示および非表示になり、もう 1 つはglobal-set-key
呼び出しから表示されます。
両方のマップに同じキー定義を使用した場合、どうすればよいでしょうか? 私が見逃した詳細は何ですか?