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

Chi*_*nke 3 vim code-formatting io-redirection

在vim中,我使用外部代码格式化程序来美化我的代码.Vim支持这一点.可以将"formatprg"选项设置为格式化代码的外部程序.请参阅:help formatprg.formatprg在stdin上获取未格式化的代码,并将格式化的代码放入stdout.

现在,当formatprg成功时,一切都运行良好.但是当出现问题时,会向stderr发送一条错误消息.不幸的是,vim无法识别这一点,并且您的未格式化代码将替换为错误消息.

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

提前致谢.

Ing*_*kat 5

您可以避免将错误输出插入缓冲区

:set shellredir=>%s
Run Code Online (Sandbox Code Playgroud)

但仍然会清除文本,并指示发生了错误.但是,您可以轻松地:undo进行错误的修改(u).

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