Je voudrais changer le comportement de fill-paragraphdans certains modes (par exemple LaTeX-modefourni par AucTeX).
Je pourrais simplement relier la clé M-q, mais j'utilise aussi evil-modela mise en œuvre de qui evil-fill-and-moveutilise fill-region. Idéalement, ma fonction de remplissage personnalisé pour remplacer à la fois les fonctions fill-paragraph(donc ça marche avec M-q) et fill-region(donc ça marche avec evil).
En supposant que j'ai un programme autonome formatqui accepte le code LaTeX via stdinet génère le code formaté stdout, comment pourrais-je remplacer les deux fonctions de remplissage ci-dessus à utiliser format?
(Remarque: ceci est similaire à viml' formatprgoption de.)
evil-fill-and-moveest lié à la séquence de touches gqen mode normal du mal. La nouvelle liaison M-qne doit pas affecter cette liaison de touches. Dans un certain sens, ma question est vraiment deux questions: 1) Comment remplacer les deux fonctions? 2) Comment utiliser un programme externe? La raison de 2) est que j'ai déjà une solution externe non Elisp.
(add-hook 'LaTeX-mode-hook (lambda () local-set-key (kbd "M-q") 'your-fill-function))où se your-fill-functiontrouve votre defun elisp personnalisé. Cela ne définira ce combo clé que dans Auctex. Vous pourriez probablement utiliser shell-command-on-regionavec l'argument REPLACE pour définir your-fill-function.
M-qaffecte- t-elleevil-fill-and-movede toute façon? Je n'utilise pas le mal donc je suis curieux. Si la région est active,fill-paragraphappelezfill-regionquand même. Vous pourriez donc conseiller ou remplacerfill-regionpar votre fonction.