Chciałbym zmienić zachowanie fill-paragraph
niektórych trybów (np. LaTeX-mode
Dostarczone przez AucTeX
).
Mógłbym po prostu ponownie powiązać klucz M-q
, ale używam również, evil-mode
którego implementacja evil-fill-and-move
zastosowań fill-region
. Idealnie fill-paragraph
byłoby, gdyby moja niestandardowa funkcja wypełniania zastępowała obie funkcje (więc działa z nimi M-q
) i fill-region
(więc działa z evil
).
Zakładając, że mam samodzielny program, format
który pobiera kod LaTeX przez stdin
i formatuje kod wyjściowy stdout
, jak miałbym zastąpić dwie powyższe funkcje wypełniania, aby użyć format
?
(Uwaga: to jest podobna do vim
„s formatprg
opcja).
evil-fill-and-move
jest związany z sekwencją klawiszy gq
w normalnym trybie zła. Ponowne wiązanie M-q
nie powinno wpływać na to wiązanie klawiszy. W pewnym sensie moje pytanie to tak naprawdę dwa pytania: 1) Jak zastąpić dwie funkcje? 2) Jak korzystać z zewnętrznego programu? Powodem 2) jest to, że mam już zewnętrzne rozwiązanie inne niż Elisp.
(add-hook 'LaTeX-mode-hook (lambda () local-set-key (kbd "M-q") 'your-fill-function))
gdzie your-fill-function
znajduje się Twój własny elisp defun. Spowoduje to ustawienie tej kombinacji klawiszy tylko w Auctex. Prawdopodobnie możesz użyć shell-command-on-region
argumentu REPLACE do zdefiniowania your-fill-function
.
M-q
wpływaevil-fill-and-move
? Nie używam zła, dlatego jestem ciekawy. Jeśli region jest aktywny, mimo tofill-paragraph
połączeniafill-region
. Możesz więc doradzić lub zastąpićfill-region
swoją funkcją.