当焦点丢失时,vim自动保存当前文件

当焦点丢失时,vim自动保存当前文件,vim,Vim,如何使vim在焦点丢失时仅自动保存当前缓冲区,而不是此处描述的所有文件,而不是:wa write all,使用:w.而不是:wa write all,使用:w.根据您的评论,我可以说您有一个错误的问题:您不想“焦点丢失时仅保存当前缓冲区”focus的意思是“当前聚焦的窗口”,但“切换到另一个窗口时写入缓冲区:当它不再处于您的关注焦点时”。要完成此操作,您可以使用 augroup AutoWrite autocmd! BufLeave * :update augroup END ,可能与

如何使vim在焦点丢失时仅自动保存当前缓冲区,而不是此处描述的所有文件,而不是:wa write all,使用:w.

而不是:wa write all,使用:w.

根据您的评论,我可以说您有一个错误的问题:您不想“焦点丢失时仅保存当前缓冲区”focus的意思是“当前聚焦的窗口”,但“切换到另一个窗口时写入缓冲区:当它不再处于您的关注焦点时”。要完成此操作,您可以使用

augroup AutoWrite
    autocmd! BufLeave * :update
augroup END
,可能与

set autowrite


第一个和第二个变量被触发的情况集相交,但都不是另一个变量的超集。

根据您的评论,我可以说您有一个错误的问题:您不想“焦点丢失时只保存当前缓冲区”焦点的意思是“当前焦点窗口”,而是“切换到另一个缓冲区时写入缓冲区:当它不再是您关注的焦点时”。要完成此操作,您可以使用

augroup AutoWrite
    autocmd! BufLeave * :update
augroup END
,可能与

set autowrite

触发第一个和第二个变量的情况集相交,但都不是另一个变量的超集。

您也可以尝试此方法

set updatetime=1000
autocmd CursorHoldI * silent w
只要把它放在你的.vimrc中,你也可以试试这个

set updatetime=1000
autocmd CursorHoldI * silent w

只要把它放在你的.vimrc

@milushov中,想知道你是否在使用终端vim。如果是的话,忘记这个想法,或者改用gvim。@ZyX我使用gvim,顺便说一句,这是我的vimrc文件-@milushov是说明为什么你不应该在你的vimrc中使用:map而不使用nore。@milushov切换缓冲区?这个FocusLost是当你使用时的事件从GVim窗口切换到其他窗口,例如浏览器或终端。要在GVim窗口之间切换,应使用WinLeave;要在GVim选项卡之间切换,应使用TabLeave,因为在此之前启动WinLeave;要真正切换WinLeave或TabLeave之前启动的缓冲区,应使用BufLive。您可能需要后者关于FocusLost。或者,可能是FocusLost,Bufleve。您可能还想查看set autowrite。@milushov想知道您是否正在使用terminal vim。如果是,请忘记这个想法,或者改用gvim。@ZyX我使用gvim,顺便说一句,这里有我的vimrc文件-@milushov是您不应该在vimrc中使用:map with nore的说明。@milushovffers?当您从GVim窗口切换到其他窗口(如浏览器或终端)时,此FocusLost是事件。要在GVim窗口之间切换,应使用WinLeave;要在GVim选项卡之间切换,应使用TabLeave,因为在此之前启动了WinLeave;要真正切换WinLeave之前启动的缓冲区,请使用BufLiver TabLeave。您可能需要后者来代替FocusLost。或者,可能需要FocusLost,bufleve。您可能还需要查看set autowrite。