1

新しいメジャーモード(サンライズコマンダー)をインストールしましたが、事前定義されたすべてのキーバインディングをリセットしたいと思います。使えますが

(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は、空のキーマップを返す関数です(明らかに引数が指定されていない場合)。

4

1 に答える 1

2

sr-mode-map新しく作成された空のキーマップにバインドします。

(setq sr-mode-map (make-sparse-keymap))

サンライズコマンダーがロードされるまで、これを遅らせる必要があるかもしれません:

(eval-after-load "sc" ;; Fix this line to include the correct library name
  '(setq sr-mode-map (make-sparse-keymap)))
于 2013-03-27T11:08:02.260 に答える