如何使Vim在失去焦点时自动保存文件?

前端之家收集整理的这篇文章主要介绍了如何使Vim在失去焦点时自动保存文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我习惯了我的编辑器自动保存文件时,他们失去焦点。我最近切换到MacVim,我不能重现这种行为。我试过这个:
autocmd BufLeave,FocusLost * wall

但是如果一个缓冲区未命名时窗口或MacVim失去焦点,我得到一个错误,如下所示:

Error detected while processing BufLeave Auto commands for "*":
E141: No file name for buffer 1

我很困惑,因为:wall的文档说:

Write all changed buffers.  Buffers without a file
name or which are readonly are not written.

所以我希望它跳过未命名的缓冲区。有没有更好的方法来做到这一点?

编辑:

我确信,更好的方式来做我想要的,通过使用BufLeave – 保存缓冲区,当我们在他们之间切换,所以我不会得到“没有写自上次更改”是设置’autowriteall’。问题仍然是,当MacVim失去焦点到其他应用程序(FocusLost)。

你不关心这些情况下的错误,因为没有什么你可以合理地做他们反正 – 尤其是当失去焦点。所以只是吞下他们:
autocmd BufLeave,FocusLost * silent! wall

比一个精心制作的舞蹈更简单,弄清楚哪里会有一个错误,以避免它。

猜你在找的Bash相关文章