在保存时运行代码格式化程序后,自动在vim中重新加载当前文件
每次在Windows 10(Vim 8.2)下的Vim中保存文件时,我都试图实现以下目标:在保存时运行代码格式化程序后,自动在vim中重新加载当前文件,vim,autoformatting,Vim,Autoformatting,每次在Windows 10(Vim 8.2)下的Vim中保存文件时,我都试图实现以下目标: 自动格式化文件(使用外部工具,例如“取消锈蚀”) 在Vim中重新加载格式化文件(我想查看新格式化的文件) 现在我可以使用autocmd自动格式化文件,方法是将以下内容添加到我的.vimrc: autocmd BufWritePost * silent! !start /min Autoformat.bat <afile> 我仍然看到控制台闪烁了(不到)一秒钟,但我可以接受,因为Vim会自动重
autocmd
自动格式化文件,方法是将以下内容添加到我的.vimrc
:
autocmd BufWritePost * silent! !start /min Autoformat.bat <afile>
我仍然看到控制台闪烁了(不到)一秒钟,但我可以接受,因为Vim会自动重新加载文件,我可以继续工作。现在无法在Windows 10上测试这一点,但在Linux上,我正在尝试类似的设置:
autocmd BufWritePost * silent! !start /min Autoformat.bat <afile>
autocmd BufWritePost * edit
autocmd BufWritePost * redraw!
我刚刚尝试了这两个选项,但没有一个在我的Windows机器上起作用。第一个选项(使用
edit
,无autoread
)在保存后不会自动更新屏幕。我必须离开焦点,然后回来查看“重新加载”对话框。第二个选项(无edit
,带有autoread
)不会自动更新屏幕,但是如果我失去焦点回到Vim,屏幕会在没有“重新加载”对话框的情况下更新。@BobMorane哦,这真是不幸:(你能提供更多关于你的设置的信息吗?例如,你是从终端运行vim还是使用gvim?--一旦我在工作中接触到我的windows 10机器,我会尝试复制你的设置,并希望找到一个可行的windows解决方案。我在windows 10上使用gvim 8.2。我没有使用插件,使用的格式化程序也不生锈(在脚本内部调用)。我有一个小的.vimrc
文件,如果需要,我可以与您共享。基本上,我只为行编号等设置了几个选项。感谢您花时间,我非常感谢。我已经在我的Linux机器上尝试了您的第二个解决方案,它按预期工作。我用Wind上的.vimrc
中的工作行更新了问题你的解决方案有效。
autocmd BufWritePost * silent! !start /min Autoformat.bat <afile>
autocmd BufWritePost * edit
autocmd BufWritePost * redraw!
set autoread
autocmd BufWritePost * silent! !start /min Autoformat.bat <afile>
autocmd BufWritePost * redraw!