2008-11-18 10 views
10

paredit se fixe M-<up> et M-<down>, mais je veux windmove posséder ces raccourcis clavier. J'ai le mode paredit réglé pour activer dans certains modes seulement, mais windmove est configuré pour fonctionner globalement. Je veux que windmove gagne, mais paredit vole ces keybindings quand il charge.Comment gérer les raccourcis clavier contradictoires

Comment est-ce que je peux facilement arrêter le paredit de piétiner sur les raccourcis clavier de windmove? Je suis allé dans paredit.el et commenter les lignes qui définissent la reliure, mais c'est loin d'être idéal (je dois me rappeler de le faire chaque fois que je met à jour paredit).

Plus généralement, puis-je charger un fichier elisp tout en "protégeant" certains raccourcis clavier d'être modifiés?

Répondre

11

Vous pouvez utiliser eval-after-load pour configurer le comportement de paredit après chargement, tel que décrit dans ses commentaires:

;;; Customize paredit using `eval-after-load': 
;;; 
;;; (eval-after-load 'paredit 
;;;  '(progn ...redefine keys, &c....)) 

Ainsi, par exemple:

(eval-after-load 'paredit 
    '(progn 
    (define-key paredit-mode-map (kbd "<M-up>") nil) 
    (define-key paredit-mode-map (kbd "<M-down>") nil))) 
+0

C'est aussi une excellente réponse générale - merci beaucoup. Ma seule contribution est de souligner que si vous voulez aussi modifier une liaison de touches (plutôt que de la supprimer), vous devez mettre le nom de la fonction paredit où Emerick a placé le 'nil' ci-dessus, comme je l'ai fait pour slurp ":' (eval-after-load 'paredit ' (progn (définir-clé paredit-mode-map (kbd "") 'paredit-avant-slurp-sexp))) ' – quux00

1

Cette question a reçu une réponse avant: Globally override key binding in Emacs

Vous créez votre propre mode mineur avec vos raccourcis clavier préférés et l'activez globalement, de sorte qu'il écrase toutes les autres liaisons clavier.

Questions connexes