key bindings - Emacs: unbind all keys of some-mode-map -
i know, can unbind keys using unbind-key
. in case have know key want unbind. don't know key. want unbind keys of some-mode-map
. don't want override them, want unbind them , define own keys in some-mode-map
. know iterate some-mode-map
, apply unbind-key
, may there more straightforward solution? , don't know how iterate keymap
.
update
tried (as suggested phils in comments) way , didn't work:
(use-package neotree :config (setq neotree-mode-map (make-sparse-keymap)) (define-key neotree-mode-map (kbd "ret") 'neotree-enter) ) (use-package evil :init (setq evil-overriding-maps '((neotree-mode-map))) )
neotree-mode-map
remains not cleaned. , depending on package configuration order, evil
bindings gets overridden. doesn't unless redefine neotree-mode-map
. know obtain desired result evil-define-key
, want keep package specific settings in own configuration file. if employ evil-define-key
, neotree
key binding definitions in setup-evil.el
, not in setup-neotree.el
update 2
answer works, (setq neotree-mode-map (make-sparse-keymap))
. appears neotree-mode-map
has parent map, , that's why key bindings "come back" after "cleaning". thing figured out is, evil
put overriding maps information.
(keymap ... (override-state . all) ... )
and that's why should clear map before evil
configuration.
you can gut bindings in keymap following:
(setf (cdr <keymap>) nil)
i think in practice want, because there'll bindings didn't realize useful (e.g. corresponding menubar entries), asked for.
as iterating keymap, can use map-keymap
that.
Comments
Post a Comment