E325如何自动恢复和删除swap文件?

San*_*mar 5 vim

Vim 有一个很好的功能,可以在之前的会话崩溃时恢复文件。当它发生时,Vim 显示如下:

Swap file "~/Desktop/.file.txt.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,我会恢复文件,r每次 vim 崩溃时都按它很烦人。

  1. 我希望恢复是自动的。

问题还不止于此。即使文件已经恢复,交换文件仍然存在,并再次出现该提示。

  1. 如果发生恢复,我希望删除交换文件。

所以每次在这种情况下,我都想静默恢复并删除交换文件。

elm*_*art 4

我还没有尝试过,但我认为你可以使用这个:

augroup AutomaticSwapRecoveryAndDelete
    autocmd!
    autocmd SwapExists * :let v:swapchoice = 'r' | let b:swapname = v:swapname 
    autocmd BufWinEnter * :if exists("b:swapname") | call delete(b:swapname) | unlet b:swapname | endif
augroup end
Run Code Online (Sandbox Code Playgroud)

参见:h v:swapchoice:h v:swapcommand:h v:swapname:h SwapExists