我习惯于我的编辑器在失去焦点时自动保存文件。最近我切换到了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
)的情况,问题仍然存在。