我想更改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
的formatprg
选项。)
我没有尝试过,但我相信没有。在邪恶的正常模式下
—
凯文
evil-fill-and-move
绑定到按键序列gq
。重新绑定M-q
不应影响此键绑定。从某种意义上讲,我的问题实际上是两个问题:1)如何替换两个功能?2)如何使用外部程序?2)的原因是我已经有一个外部的非Elisp解决方案。
在这种情况下,您可以通过自定义elisp defun
—
Vamsi 2014年
(add-hook 'LaTeX-mode-hook (lambda () local-set-key (kbd "M-q") 'your-fill-function))
在哪里解决部分问题your-fill-function
。这将仅在Auctex中设置该键组合。您可能可以使用shell-command-on-region
REPLACE参数来定义your-fill-function
。
M-q
会产生影响evil-fill-and-move
?我不使用邪恶,所以我很好奇。如果区域处于活动状态,则仍要fill-paragraph
呼叫fill-region
。因此,您可能会建议或替换fill-region
为您的功能。