Catatan: Anda belum mengatakan sistem operasi mana yang Anda gunakan. Berikut ini berfungsi dengan shell Unix tetapi jika menjalankan Windows, Anda dapat mengunduh Cygwin tanpa tulang atau shell lain.
Saya dulu melakukan hal yang sama seperti Anda, jalankan :e
untuk membuka kembali file yang sama untuk mendapatkan opsi untuk menghapus file pemulihan. Setelah crash atau komputer tidak terduga restart, saya membersihkan semua file pemulihan Vim yang tersisa dengan menjalankan vim -r
pada file swap dan membiarkan pemulihan melanjutkan.
Ketika file belum berubah
Jika file belum berubah, saya ingin segera menghapus file pemulihan. Akan lebih bagus jika Vim bisa melakukan ini secara otomatis tetapi sayangnya tidak.
Ketika file telah berubah
Jika file telah berubah, saya menjalankan DiffOrig
perintah untuk membandingkan perbedaan antara versi asli dan yang dipulihkan. Jika saya senang dengan perubahan dari file pemulihan, saya keluar dengan menyimpan file dengan :x
perintah. Jika tidak, saya membuang perubahan yang dipulihkan dengan berhenti menggunakan :q!
. Jika file pemulihan tidak terkait dengan file yang disimpan, misalnya .swp
, saya biasanya menggunakan :w filename
untuk menyimpan buffer yang dipulihkan ke file dengan nama file.
Pembantu DiffOrig
Saya menambahkan perintah DiffOrig ke saya .vimrc
sehingga selalu tersedia.
command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis
Skrip shell
Saya menjalankan skrip berikut di shell saya untuk menemukan setiap swap-file di pohon direktori saat ini. Setiap swap-file kemudian digunakan untuk membuka Vim dalam "mode pemulihan" dan kemudian dihapus setelah Vim ditutup.
find . -type f -name '.*.sw?' -exec vim -r "{}" -c DiffOrig \; -exec rm -iv "{}" \;
The rm -i
pilihan memerlukan konfirmasi ( y
) untuk menghapus file. Jika Anda lebih percaya diri dan ingin mempercepat prosesnya, ini bisa dihilangkan.
:e #
trik Anda , meskipun tidak ideal, tetapi masih lebih bermanfaat daripada jawaban saat ini di bawah. :-)