Я хотел бы изменить поведение fill-paragraphв определенных режимах (например, LaTeX-modeпредоставленных AucTeX).
Я мог бы просто привязать ключ M-q, но я также использую evil-modeчью реализацию evil-fill-and-moveиспользует fill-region. В идеале, моя пользовательская функция заполнения должна переопределять обе функции fill-paragraph(чтобы она работала M-q) и fill-region(чтобы она работала evil).
Предполагая, что у меня есть отдельная программа, formatкоторая принимает код LaTeX через stdinи выводит форматированный код stdout, как мне переопределить две вышеупомянутые функции заполнения для использования format?
(Примечание: это похоже на vim's formatprgвариант.)
evil-fill-and-moveсвязан с последовательностью клавиш gqв нормальном режиме зла. Перепривязка M-qне должна влиять на эту привязку клавиш. В каком-то смысле мой вопрос на самом деле состоит из двух вопросов: 1) Как заменить две функции? 2) Как использовать внешнюю программу? Причина 2) в том, что у меня уже есть внешнее решение, отличное от Elisp.
(add-hook 'LaTeX-mode-hook (lambda () local-set-key (kbd "M-q") 'your-fill-function))где your-fill-functionваш заказ Elisp DEFUN. Это установит этот ключевой комбо только в Auctex. Возможно, вы могли бы использовать shell-command-on-regionс аргументом REPLACE для определения your-fill-function.
M-qвлияетevil-fill-and-moveна так или иначе? Я не использую зло, поэтому мне любопытно. Если регион активен,fill-paragraphзвонкиfill-regionвсе равно. Таким образом, вы могли бы посоветовать или заменитьfill-regionсвоей функцией.