3

在 vim 中,我使用外部代码格式化程序来美化我的代码。Vim 支持这一点。可以将“formatprg”选项设置为格式化代码的外部程序。请参阅 :help formatprg。formatprg 将您未格式化的代码放在标准输入上,并将格式化的代码放入标准输出。

现在,当 formatprg 成功时,一切正常。但是当出现问题时,会向 stderr 发送一条错误消息。不幸的是,vim 无法识别这一点,并且您未格式化的代码被错误消息替换。

如何将错误重定向到 vim 的 echoerr?

提前致谢。

4

1 回答 1

6

您可以通过以下方式避免将错误输出插入缓冲区

:set shellredir=>%s

但是,文本仍将被清除,并显示发生错误的少量迹象。不过,您可以轻松地:undo进行错误修改 ( u)。

这个类似的问题显示了一种解决方法,但对我来说这看起来很难看,我想知道为什么 Vim 不评估外部程序的退出代码。(我会去 vim_dev 询问这背后的原因。编辑这里是

于 2012-12-01T11:24:39.717 回答