Vorrei cambiare il comportamento di fill-paragraph
in determinate modalità (ad esempio LaTeX-mode
fornite da AucTeX
).
Potrei semplicemente ricollegare la chiave M-q
, ma sto anche usando la evil-mode
cui implementazione degli evil-fill-and-move
usi fill-region
. Idealmente, la mia funzione di riempimento personalizzata per sovrascrivere entrambe le funzioni fill-paragraph
(in modo che funzioni M-q
) e fill-region
(in modo che funzioni evil
).
Supponendo che ho un programma autonomo format
che accetta il codice LaTeX tramite stdin
e genera il codice formattato stdout
, come potrei fare per sovrascrivere le due funzioni di riempimento di cui sopra format
?
(Nota: questo è simile a vim
's formatprg
opzione.)
evil-fill-and-move
è legato alla sequenza di tasti gq
nella modalità normale del male. La rilegatura M-q
non dovrebbe influire su questa associazione di tasti. In un certo senso, la mia domanda è in realtà due domande: 1) Come sostituire le due funzioni? 2) Come utilizzare un programma esterno? Il motivo di 2) è che ho già una soluzione esterna, non Elisp.
(add-hook 'LaTeX-mode-hook (lambda () local-set-key (kbd "M-q") 'your-fill-function))
dove si your-fill-function
trova il tuo defun personalizzato elisp. Questo imposterà quella combinazione di tasti solo in Auctex. Probabilmente potresti usare shell-command-on-region
l'argomento REPLACE per definire your-fill-function
.
M-q
influenzaevil-fill-and-move
comunque? Non uso il male, quindi sono curioso. Se la regione è attiva,fill-paragraph
chiamafill-region
comunque. Quindi potresti consigliare o sostituirefill-region
con la tua funzione.