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.)
latex
init-file
auctex
fill-paragraph
Kevin
fonte
fonte
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.evil-fill-and-move
está vinculado à sequência de teclasgq
no modo normal do mal. A religaçãoM-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))
ondeyour-fill-function
está o seu elisp customizado. Isso definirá essa combinação de teclas apenas no Auctex. Você provavelmente poderia usarshell-command-on-region
o argumento REPLACE para definiryour-fill-function
.Respostas:
Seria melhor ter duas funções, embora uma possa ser implementada em termos da outra. A razão é que um parágrafo é uma região implícita ; portanto, a entrada nos dois casos deve ser diferente
Para substituir funções por outras pessoas, independentemente de suas combinações de teclas, use as combinações de teclas remapadas:
fonte