新しいメジャーモード(サンライズコマンダー)をインストールしましたが、事前定義されたすべてのキーバインディングをリセットしたいと思います。使えますが
(add-hook 'sr-mode-hook
'(lambda ()
(define-key sr-mode-map "KEY" nil)
...
))
このモードには非常に多くのバインディングがあるので、私の好みには退屈なタグです。
ワンライナーまたは少数ライナーでこのメジャーモードのキーバインディングを完全にリセットする方法はありますか?
編集#1:以下に説明するようにこれらの方法を使用してみました:
(eval-after-load "sunrise"
'(setq sr-mode-map (make-sparse-keymap)))
また
(add-hook 'sr-mode-hook
(lambda ()
(setq sr-mode-map (make-sparse-keymap))))
悲しいことに、どちらも機能していないようです。
実際に新しい空のキーマップを定義する必要がありますか?例:
(defvar sunrise-keys-mode-map (make-keymap) "sunrise-keys-mode keymap.")
(define-minor-mode sunrise-keys-mode
"A minor mode so that my key settings override sunrise major mode keymap."
t " my-keys" 'sunrise-keys-mode-map)
(sunrise-keys-mode 1)
(eval-after-load "sunrise" ;; Fix this line to include the correct library name
'(setq sr-mode-map (sunrise-keys-mode)))
編集#2:日の出の司令官コードを少しいじった後、sr-mode-mapがdiredモードマップに基づいていることに気づきました。両方を無効にしましたが、完全に機能しました。
(eval-after-load "sunrise-commander"
'(setq sr-mode-map (make-sparse-keymap)
dired-mode-map (make-sparse-keymap)))
将来の参考のために-上記は必要な唯一のコードです。make-sparse-keymapは、空のキーマップを返す関数です(明らかに引数が指定されていない場合)。