注:使用しているオペレーティングシステムはまだ明らかにしていません。以下はUnixシェルで動作しますが、Windowsを実行している場合は、必要最低限のCygwinまたは他のシェルをダウンロードできます。
私はあなたと同じことをしていました、実行:e
して同じファイルを再度開き、リカバリファイルを削除するオプションを取得しました。クラッシュまたは予期しないコンピュータの再起動後、vim -r
スワップファイルで実行して回復を続行することにより、残りのVim回復ファイルをすべてクリーンアップします。
ファイルが変更されていない場合
ファイルが変更されていない場合は、リカバリファイルをすぐに削除します。Vimがこれを自動的に実行できればすばらしいのですが、残念ながらできません。
ファイルが変更されたとき
ファイルが変更されている場合は、DiffOrig
コマンドを実行して、元のバージョンと復元されたバージョンの違いを比較します。リカバリファイルからの変更に満足したら、:x
コマンドでファイルを保存して終了します。そうでない場合は、で終了して、復元した変更を破棄し:q!
ます。リカバリファイルが保存されたファイルに関連付けられていない場合(例:)、.swp
通常はを使用し:w filename
て、リカバリされたバッファをファイル名の付いたファイルに保存します。
DiffOrigヘルパー
DiffOrigコマンドをmy に追加して、.vimrc
常に使用できるようにしました。
command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis
シェルスクリプト
シェルで次のスクリプトを実行して、現在のディレクトリツリーですべてのスワップファイルを見つけます。次に、各スワップファイルを使用してVimを「回復モード」で開き、Vimを閉じた後に削除します。
find . -type f -name '.*.sw?' -exec vim -r "{}" -c DiffOrig \; -exec rm -iv "{}" \;
このrm -i
オプションではy
、ファイルを削除するために確認()が必要です。自信があり、プロセスをスピードアップしたい場合は、これを省略できます。
:e #
トリックは、理想的ではありませんが、以下の現在の答えよりもさらに有用であることがわかりました。:-)