Vim:保存 FocusLost 并执行自动命令

Gar*_*Jax 2 vim autocmd

我已经设置了我的 vim 编辑器(我使用 MacVim)在焦点丢失时自动保存文件:

autocmd FocusLost * silent! wall
Run Code Online (Sandbox Code Playgroud)

我还使用这个自动命令从 python 文件中自动去除尾随空格:

autocmd BufWritePre *.py :%s/\s\+$//e
Run Code Online (Sandbox Code Playgroud)

当我手动保存文件(通过键入:w或按?s)时,此自动命令可以完美运行,但是当我切换到另一个应用程序并自动写入缓冲区时,它不会被执行(即没有删除空格)。

如何修改这些自动命令以使其协同工作?

And*_*art 5

您需要将 FocusLost 自动命令更改为:

autocmd FocusLost * nested silent! wall
Run Code Online (Sandbox Code Playgroud)

详情请参阅:h autocmd-nested