Come gestire le combinazioni di tasti in conflitto
-
08-07-2019 - |
Domanda
paredit si lega a M-<up>
e M-<down>
, ma voglio windmove per possedere queste combinazioni di tasti. Ho impostato la modalità paredit per l'attivazione solo in determinate modalità, ma windmove è impostato per funzionare a livello globale. Voglio che Windmove vinca, ma il paredit ruba queste combinazioni di tasti quando si carica.
Come posso facilmente impedire a paredit di calpestare le combinazioni di tasti di Windmove? Ho analizzato paredit.el
e commentato le righe che impostano il keybinding, ma questo è tutt'altro che ideale (devo ricordare di farlo ogni volta che aggiorno paredit).
Più in generale, posso caricare un file elisp mentre " proteggere " alcune combinazioni di tasti vengono modificate?
Soluzione
Puoi usare eval-after-load
per configurare il comportamento di paredit dopo averlo caricato, come descritto nei suoi commenti:
;;; Customize paredit using `eval-after-load':
;;;
;;; (eval-after-load 'paredit
;;; '(progn ...redefine keys, &c....))
Quindi, per esempio:
(eval-after-load 'paredit
'(progn
(define-key paredit-mode-map (kbd "<M-up>") nil)
(define-key paredit-mode-map (kbd "<M-down>") nil)))
Altri suggerimenti
A questa domanda è già stata data una risposta: Ignora globalmente il key binding in Emacs
Crei la tua modalità minore con le tue combinazioni di tasti preferite e la abiliti a livello globale, in modo che prevalga su tutte le altre combinazioni di tasti.