Vim dapat melakukan ini, meskipun mungkin agak kikuk dan mengambil beberapa pengaturan.
romainl membantu Anda session
. Bit yang hilang adalah file swap :preserve
,, dan &
flag untuk cpoptions
.
Swap file dimaksudkan untuk pemulihan jika Vim atau sistem Anda rusak. Mereka memungkinkan Anda untuk memulihkan perubahan yang belum disimpan (dengan beberapa batasan, lihat :he swap-file
). Namun, ketika Vim keluar secara normal, Vim menghapus semua file swap yang digunakannya, bahkan jika buffer memiliki perubahan yang belum disimpan.
Di situlah :preserve
dan cpoptions
's &
datang dalam. :preserve
Pasukan Vim untuk menulis semua buffer ke swap file mereka segera (sebagai lawan standar setelah 4 detik atau 200 karakter, atau apa pun pilihan Anda telah menetapkan untuk). Doing :set cpoptions+=&
memberitahu Vim untuk tidak menghapus file swap yang disimpan :preserve
ketika keluar secara normal.
Sayangnya, Vim tidak secara otomatis membersihkan file swap ketika memulihkan dari mereka, sehingga Anda dapat segera berakhir dengan direktori yang terlihat seperti ini:
.foo.txt.swn
.foo.txt.swo
.foo.txt.swp
foo.txt
Anda dapat menghapus yang lebih lama secara manual, tetapi Vim hanya akan secara otomatis menawarkan untuk memulihkan jika ada *.swp
file di mana ia akan meletakkan file swap yang baru. The :recover
perintah akan memaksa Vim untuk mencari swap file untuk pulih dari.
Dengan menggunakan perintah otomatis, Anda dapat mengotomatiskan pelestarian (mungkin dengan QuitPre
acara) dan memulihkan (mungkin dengan BufRead
atau BufReadPost
). Recover.vim adalah sebuah plugin yang mungkin berfungsi sebagai alternatif yang lebih ramah untuk mengelola pemulihan. Tampaknya juga menangani pembersihan file swap. Saya tidak yakin bagaimana ini akan menangani direktori dengan .swo
tetapi tanpa .swp
file. Anda mungkin masih perlu menggunakan :recover
untuk kasus itu.
Obsesi vim adalah plugin lain yang mengklaim untuk membuat sesi penanganan lebih mudah.