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

时间:2012-12-01 10:53:39

标签: vim code-formatting io-redirection

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分:5)

您可以通过

避免将错误输出插入缓冲区
:set shellredir=>%s

但仍然会清除文本,并指示发生了错误。不过,您可以轻松:undo修改错误(u)。

This similar question显示了一种解决方法,但对我来说这看起来很难看,我想知道为什么Vim不会评估外部程序的退出代码。 (我会在vim_dev上询问其背后的原因。编辑Here it is