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 :preservedan cpoptions's &datang dalam. :preservePasukan 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 :preserveketika 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 *.swpfile di mana ia akan meletakkan file swap yang baru. The :recoverperintah akan memaksa Vim untuk mencari swap file untuk pulih dari.
Dengan menggunakan perintah otomatis, Anda dapat mengotomatiskan pelestarian (mungkin dengan QuitPreacara) dan memulihkan (mungkin dengan BufReadatau 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 .swotetapi tanpa .swpfile. Anda mungkin masih perlu menggunakan :recoveruntuk kasus itu.
Obsesi vim adalah plugin lain yang mengklaim untuk membuat sesi penanganan lebih mudah.