【发布时间】:2020-10-16 19:22:26
【问题描述】:
每次在 Windows 10 (Vim 8.2) 下将文件保存在 Vim 中时,我都试图实现以下目标:
- 自动格式化文件(使用外部工具,例如 Uncrustify)
- 在 Vim 中重新加载格式化文件(我想查看新格式化的文件)
现在我可以使用autocmd 自动格式化文件,方法是将以下内容添加到我的.vimrc:
autocmd BufWritePost * silent! !start /min Autoformat.bat <afile>
问题是屏幕上的文件内容没有更新(我仍然看到未格式化的文件)。我必须失去焦点,然后回来查看重新加载文件的提示。 刷新文件缺少什么?
经过一番研究,到目前为止我已经尝试了以下方法:
- 添加
autocmd BufWritePost * !edit(手动即可) - 添加
autocmd BufWritePost * !redraw
但它似乎不起作用。
注意:silent! !start /min 使烦人的命令提示符静音,该命令提示符在每次保存时都会闪烁(在 Windows 上)。
以下在 Windows 上对我有用:
set autoread
autocmd BufWritePost * silent! !C:\Users\epoirier\Documents\BufWritePost.bat <afile>
autocmd BufWritePost * redraw!
我仍然看到控制台闪烁(不到)一秒钟,但我可以忍受这种情况,因为 Vim 会自动重新加载文件并且我可以继续工作。
【问题讨论】:
标签: vim autoformatting