Ich möchte das Verhalten fill-paragraphin bestimmten Modi ändern (zB LaTeX-modebereitgestellt von AucTeX).
Ich könnte den Schlüssel einfach neu binden M-q, aber ich verwende auch evil-modedessen Implementierung von evil-fill-and-moveVerwendungen fill-region. Im Idealfall überschreibt meine benutzerdefinierte Füllfunktion sowohl die Funktionen fill-paragraph(damit es funktioniert M-q) als auch fill-region(damit es funktioniert evil).
Angenommen, ich habe ein eigenständiges Programm format, das LaTeX-Code über stdinformatierten Code aufnimmt und diesen ausgibt stdout. Wie würde ich die beiden oben genannten Füllfunktionen überschreiben, um sie zu verwenden format?
(Hinweis: Dies ist ähnlich wie vim‚s - formatprgOption.)
evil-fill-and-moveist gqim normalen Modus des Bösen an die Tastenfolge gebunden . Das erneute Binden M-qsollte diese Tastenkombination nicht beeinflussen. In gewissem Sinne sind meine Fragen wirklich zwei Fragen: 1) Wie ersetze ich die beiden Funktionen? 2) Wie benutze ich ein externes Programm? Der Grund für 2) ist, dass ich bereits eine externe Nicht-Elisp-Lösung habe.
(add-hook 'LaTeX-mode-hook (lambda () local-set-key (kbd "M-q") 'your-fill-function))wo your-fill-functionist Ihre individuelle elisp defun. Dadurch wird diese Tastenkombination nur in Auctex festgelegt. Sie könnten wahrscheinlich shell-command-on-regionmit dem REPLACE-Argument definieren your-fill-function.
M-qdas erneute Binden überhauptevil-fill-and-move? Ich benutze das Böse nicht, deshalb bin ich neugierig. Wenn die Region trotzdem aktiv istfill-paragraph, wirdfill-regionangerufen. So können Sie beraten oder durchfill-regionIhre Funktion ersetzen .