Ich möchte das Verhalten fill-paragraph
in bestimmten Modi ändern (zB LaTeX-mode
bereitgestellt von AucTeX
).
Ich könnte den Schlüssel einfach neu binden M-q
, aber ich verwende auch evil-mode
dessen Implementierung von evil-fill-and-move
Verwendungen 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 stdin
formatierten 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 - formatprg
Option.)
latex
init-file
auctex
fill-paragraph
Kevin
quelle
quelle
M-q
das erneute Binden überhauptevil-fill-and-move
? Ich benutze das Böse nicht, deshalb bin ich neugierig. Wenn die Region trotzdem aktiv istfill-paragraph
, wirdfill-region
angerufen. So können Sie beraten oder durchfill-region
Ihre Funktion ersetzen .evil-fill-and-move
istgq
im normalen Modus des Bösen an die Tastenfolge gebunden . Das erneute BindenM-q
sollte 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))
woyour-fill-function
ist Ihre individuelle elisp defun. Dadurch wird diese Tastenkombination nur in Auctex festgelegt. Sie könnten wahrscheinlichshell-command-on-region
mit dem REPLACE-Argument definierenyour-fill-function
.Antworten:
Es wäre besser, zwei Funktionen zu haben, obwohl eine in Bezug auf die andere implementiert werden kann. Der Grund dafür ist, dass ein Absatz ein impliziter Bereich ist, daher sollte die Eingabe in beiden Fällen unterschiedlich sein
Verwenden Sie Remap-Tastenkombinationen, um Funktionen unabhängig von ihrer Tastenkombination durch andere zu ersetzen:
quelle