在保存时运行代码格式化程序后,自动在vim中重新加载当前文件

在保存时运行代码格式化程序后,自动在vim中重新加载当前文件,vim,autoformatting,Vim,Autoformatting,每次在Windows 10(Vim 8.2)下的Vim中保存文件时,我都试图实现以下目标: 自动格式化文件(使用外部工具,例如“取消锈蚀”) 在Vim中重新加载格式化文件(我想查看新格式化的文件) 现在我可以使用autocmd自动格式化文件,方法是将以下内容添加到我的.vimrc: autocmd BufWritePost * silent! !start /min Autoformat.bat <afile> 我仍然看到控制台闪烁了(不到)一秒钟,但我可以接受,因为Vim会自动重

每次在Windows 10(Vim 8.2)下的Vim中保存文件时,我都试图实现以下目标:

  • 自动格式化文件(使用外部工具,例如“取消锈蚀”)
  • 在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!