5

Vim には、前のセッションがクラッシュした場合にファイルを復元する優れた機能があります。それが起こったとき、Vimは次のようなものを表示します:

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

ほとんどの場合、ファイルを復元しますが、rvim がクラッシュするたびに押すのは面倒です。

  1. 回復を自動にしたい。

問題はここで終わりではありません。ファイルが復元された場合でも、スワップ ファイルはまだそこに存在し、そのプロンプトが再び表示されます。

  1. 復旧したらスワップファイルを削除してほしい。

そのような状況になるたびに、黙って回復し、スワップ ファイルを削除したいと思います。

4

2 に答える 2

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

:h v:swapchoice:h v:swapcommand:h v:swapnameおよびを参照してください。:h SwapExists

于 2013-08-25T09:50:25.097 に答える
3

バッファを編集している限りスワップファイルが存在するはずなので、elmartの回答の2番目の自動コマンドを次のように置き換えます

augroup AutomaticSwapRecoveryAndDelete
    autocmd!
    autocmd SwapExists * :let v:swapchoice = 'r' | let b:swapname = v:swapname 
    autocmd VimLeave * :if exists("b:swapname") | call delete(b:swapname) | endif
augroup end

:DiffOrigさらに、スワップとオリジナルの違いについて疑問がある場合は、を使用できます。

于 2015-03-11T10:54:14.577 に答える