2013-03-27 5 views
1

J'ai installé un nouveau mode majeur (sunrise commander) et je souhaite réinitialiser toutes les liaisons de touches prédéfinies. Bien que je peux utiliserSupprimer les raccourcis clavier en mode majeur dans emacs

ce mode ont tant de liaisons, il est une étiquette pénible à mon goût. Y at-il un moyen de réinitialiser complètement les raccourcis clavier de ce mode majeur dans un monodirectionnel ou quelques lignes?


EDIT # 1: Je essayé d'utiliser ces méthodes comme décrit ci-dessous:

(eval-after-load "sunrise" 
    '(setq sr-mode-map (make-sparse-keymap))) 

OU

(add-hook 'sr-mode-hook 
    (lambda() 
    (setq sr-mode-map (make-sparse-keymap)))) 

Malheureusement, aucun d'entre eux ne semble fonctionner. Est-ce que je dois réellement définir un nouveau keymap vide? E.g. en utilisant

(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))) 

EDIT # 2: Après un peu de bricoler dans le code commandant du lever du soleil, j'ai remarqué que le mode sr-carte est basée sur la carte du mode dired. J'ai désactivé les deux, et cela a fonctionné parfaitement.

(eval-after-load "sunrise-commander" 
    '(setq sr-mode-map (make-sparse-keymap) 
     dired-mode-map (make-sparse-keymap))) 

Pour référence future - ce qui précède est le seul code nécessaire. make-sparse-keymap est une fonction qui retourne un keymap vide (sauf si fourni avec un argument, apparemment).

Répondre

2

Vous cound lier sr-mode-map à un nouvellement créé, keymap vide:

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

vous pourriez avoir besoin de retarder jusqu'à ce que après le commandant du lever du soleil est chargé:

(eval-after-load "sc" ;; Fix this line to include the correct library name 
    '(setq sr-mode-map (make-sparse-keymap))) 
+0

Ai-je besoin de ajouter autre chose à côté de la commande ci-dessus? Devrais-je l'appeler depuis le sr-mode-hook? Parce que l'une ou l'autre option ne fonctionnait pas pour moi :-) – CrimsonKing

+0

L'appeler à partir de 'sr-mode-hook' devrait fonctionner (bien que cela puisse être un peu exagéré, et vous devrez définir vos propres raccourcis clavier immédiatement après) – Francesco

+0

Cela devrait fonctionner dans votre fichier init, mais vous devrez peut-être retarder l'évaluation après le chargement de sunrise-commander (voir mon edit, peut-être que cela fonctionnera mieux). Je n'utilise pas sunrise commander, mais j'ai testé cette technique avec d'autres modes majeurs (tels que 'python-mode') et ça marche bien ... – Francesco

Questions connexes