加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 09:14:00 所属栏目:安全 来源:网络整理
导读:我习惯了我的编辑器自动保存文件时,他们失去焦点。我最近切换到MacVim,我不能重现这种行为。我试过这个: autocmd BufLeave,FocusLost * wall 但是如果一个缓冲区未命名时窗口或MacVim失去焦点,我得到一个错误,如下所示: Error detected while processi
我习惯了我的编辑器自动保存文件时,他们失去焦点。我最近切换到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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读