Gostaria de mudar o comportamento de fill-paragraph
certos modos (por exemplo, LaTeX-mode
fornecidos por AucTeX
).
Eu poderia apenas religar a chave M-q
, mas também estou usando evil-mode
cuja implementação de evil-fill-and-move
usos fill-region
. Idealmente, minha função de preenchimento personalizado substitui as funções fill-paragraph
(assim funciona M-q
) e fill-region
(assim funciona evil
).
Supondo que eu tenho um programa independente format
que aceita o código LaTeX via stdin
e gera código formatado stdout
, como substituir as duas funções de preenchimento acima para usar format
?
(Nota: este é semelhante ao vim
da formatprg
opção.)
evil-fill-and-move
está vinculado à sequência de teclas gq
no modo normal do mal. A religação M-q
não deve afetar essa combinação de teclas. Em certo sentido, minha pergunta é realmente duas perguntas: 1) Como substituir as duas funções? 2) Como usar um programa externo? A razão para 2) é que eu já tenho uma solução externa não Elisp.
(add-hook 'LaTeX-mode-hook (lambda () local-set-key (kbd "M-q") 'your-fill-function))
onde your-fill-function
está o seu elisp customizado. Isso definirá essa combinação de teclas apenas no Auctex. Você provavelmente poderia usar shell-command-on-region
o argumento REPLACE para definir your-fill-function
.
M-q
afetaevil-fill-and-move
de qualquer maneira? Eu não uso o mal, por isso estou curioso. Se a região estiver ativa,fill-paragraph
ligue defill-region
qualquer maneira. Portanto, você pode aconselhar ou substituirfill-region
por sua função.