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).
latex
init-file
auctex
fill-paragraph
Kevin
źródło
źródło
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ą.evil-fill-and-move
jest związany z sekwencją klawiszygq
w normalnym trybie zła. Ponowne wiązanieM-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))
gdzieyour-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 zdefiniowaniayour-fill-function
.Odpowiedzi:
Lepiej byłoby mieć 2 funkcje, chociaż jedną można zaimplementować w odniesieniu do drugiej. Powodem jest to, że akapit jest regionem niejawnym , więc dane wejściowe w obu przypadkach powinny być różne
Aby zastąpić funkcje innymi, niezależnie od ich przypisania, użyj przyporządkowania skrótów:
źródło