在vim中,我使用外部代码格式化程序来美化我的代码。 Vim支持这一点。可以将“formatprg”选项设置为格式化代码的外部程序。请参阅:help formatprg。 formatprg在stdin上获取未格式化的代码,并将格式化的代码放入标准输出。
现在,当formatprg成功时,一切都运行良好。但是当出现问题时,会向stderr发送一条错误消息。不幸的是,vim无法识别这一点,并且您的无格式代码将替换为错误消息。
如何将错误重定向到vim的echoerr?
提前致谢。
答案 0 :(得分:5)
您可以通过
避免将错误输出插入缓冲区:set shellredir=>%s
但仍然会清除文本,并指示发生了错误。不过,您可以轻松:undo
修改错误(u
)。
This similar question显示了一种解决方法,但对我来说这看起来很难看,我想知道为什么Vim不会评估外部程序的退出代码。 (我会在vim_dev上询问其背后的原因。编辑:Here it is)