Saya membuat plugin bernama "noswapsuck" yang hanya memungkinkan swapfile ketika buffer berisi perubahan yang belum disimpan. Setelah perubahan disimpan, swapfile dihapus. Karenanya, swapfile yang berisi konten yang sama dengan file pada disk akan dihapus.
Dapatkan disini: noswapsuck.vim
Ini telah bekerja dengan baik untuk saya, tetapi saya belum pernah mempublikasikannya, jadi saya akan menerima umpan balik.
Keuntungan:
- Satu-satunya swapfile yang tersisa di disk Anda adalah swapfile penting yang sebenarnya berbeda dari file!
Kekurangan:
Jika buffer memiliki swapfile, itu tidak akan terdeteksi ketika file pertama kali dibuka. Itu hanya akan terdeteksi ketika swapfile
diaktifkan, yaitu saat Anda mulai mengedit buffer. Itu sangat terlambat, dan akan mengganggu Anda. (Diselesaikan: Kami sekarang memeriksa swapfile yang sudah ada sebelumnya ketika buffer dibuka, dengan mengaktifkan kembali swapfile
opsi untuk sementara ).
Jika Anda bekerja di lingkungan di mana Anda ingin meminimalkan penulisan disk (mis. Daya rendah, atau file yang dipasang di jaringan, atau mengedit file besar) maka tidak ideal untuk terus menghapus dan menciptakan kembali file swap pada setiap simpan dan edit. Dalam situasi seperti itu, Anda dapat melakukan:
:let g:NoSwapSuck_CloseSwapfileOnWrite = 0
yang akan menjaga swapfile setelah menulis, tetapi masih akan menghapusnya ketika buffer kehilangan fokus.
Ngomong-ngomong, saya punya plugin kecil lain :DiffAgainstFileOnDisk
yang bisa sangat berguna setelah memukul (r)ecover
, untuk memeriksa apakah buffer yang Anda pulihkan lebih baru atau lebih tua dari file yang ada, atau identik dengan itu.