Je sais que je peux déconnecter les touches en utilisant unbind-key
. Dans ce cas, je dois connaître la clé que je veux délier. Mais je ne connais pas la clé. Je veux juste délier toutes les clés de some-mode-map
. Je ne veux pas les contourner, je veux juste les délier et ensuite définir mes propres clés dans le some-mode-map
. Je sais que je pourrais itérer some-mode-map
et appliquer unbind-key
, mais peut-être il y a une solution plus simple? Et je ne sais pas comment itérer un keymap
.Emacs: déconnecter toutes les clés d'une carte en mode partiel
Mise à jour
Essayé (comme cela a été suggéré par phils dans les commentaires) de cette façon et il ne fonctionne pas:
(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
reste pas nettoyé. Et en fonction de l'ordre de configuration du package, les liaisons evil
sont remplacées. Ce n'est pas le cas sauf si je redéfinis neotree-mode-map
. Je sais que je pourrais obtenir le résultat désiré avec evil-define-key
, mais je veux garder les paramètres spécifiques au paquet dans son propre fichier de configuration. Si j'emploie evil-define-key
, neotree
définitions clés de liaison seront setup-evil.el
et non pas dans setup-neotree.el
Mise à jour 2
Answer œuvres, tout comme (setq neotree-mode-map (make-sparse-keymap))
. Mais il semble que neotree-mode-map
a une carte mère, et c'est pourquoi certaines liaisons de touches "reviennent" après "nettoyage". Une autre chose que j'ai compris, c'est que evil
mis en cartes prioritaires certaines informations supplémentaires.
(keymap
...
(override-state . all)
...
)
Et voilà pourquoi je devrais effacer carte avant evil
configuration.
Une quasi-copie de https://emacs.stackexchange.com/questions/32389/how-do-you-disable-all-keybinding-for-a-package – phils
Etes-vous sûr que 'neotree-mode-map '" * reste non nettoyé * "? Ou est-ce que vous avez correctement redéfini cette * variable * mais que le code existant pointe encore, * pas * vers la variable, mais vers son ancienne * valeur * (un keymap, c'est-à-dire une liste)? Qu'est-ce que 'C-h v neotree-mode-map' vous en dit? (Ou utilisez 'Ch Mk' (' describe-keymap') de la bibliothèque ['help-fns + .el'] (https://www.emacswiki.org/emacs/download/help-fns%2b.el), pour une fiche lisible par l'homme des liaisons keymap) – Drew
'valeur neotree-mode-map' est la suivante:. ' '' valeur: (. keymap (OVERRIDE-état tout) (13 neotree-Entrée.) keymap (103. revert-buffer) (60. début de tampon) (62. fin de tampon) (104. describe-mode) (63. describe-mode) (127. commande) (33554464.commande de défilement vers le bas) ... (argument négatif de 45) (remapper le clavier \t (commande d'insertion automatique undefined))) '' ' – nicolai