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

标签 vim autocmd

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

autocmd FocusLost * silent! wall

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

autocmd BufWritePre *.py :%s/\s\+$//e

当我手动保存文件时(通过键入 :w 或通过按 ⌘s),此自动命令完美运行,但未执行(即空白是未剥离)当我切换到另一个应用程序并且缓冲区被自动写入时。

如何修改这些自动命令,使它们协同工作?

最佳答案

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

autocmd FocusLost * nested silent! wall

有关详细信息,请参阅 :h autocmd-nested

关于Vim:保存 FocusLost 并执行自动命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8574387/

相关文章:

vim - 如何让vim在每个 "cpplint"命令后运行 "save"?

vim - 使用 vim netrw 打开文件时跳转到最后位置

bash - 使用 Vim 重新缩进多个文件 (LaTex)

vim - Vimscript 是否允许多行字符串?

vim - 在 Vim 的 `autocmd` 命令中调用一个函数

c - 在 Vim 中使用 F5 键执行 C 代码

layout - 如何在 vim 中交换两个打开文件(分片)的位置?

regex - 我可以在 VIM 或 Perl 的单个正则表达式中替换多个项目吗?

vim - Vim 自动转到下一个编译错误