Vim może to zrobić, choć może być trochę niezręczny i wymaga trochę konfiguracji.
romainl pozwala ci się z tobą rozstać session. Brakujące bity to pliki wymiany :preservei &flaga dla cpoptions.
Pliki wymiany są przeznaczone do odzyskiwania w przypadku awarii Vima lub systemu. Umożliwiają odzyskanie niezapisanych zmian (z pewnymi ograniczeniami, patrz :he swap-file). Jednak gdy Vim kończy się normalnie, usuwa wszystkie używane pliki wymiany, nawet jeśli bufor zawiera niezapisane zmiany.
To gdzie :preservei cpoptions„s &przyjść. :preserveSiły Vim napisać wszystkie bufory do swoich plików wymiany natychmiast (w przeciwieństwie do normy po 4 sekundach lub 200 znaków, czy cokolwiek twoje opcje ustawić go na). Robienie :set cpoptions+=&mówi Vimowi, żeby nie kasował plików wymiany zapisanych :preserveprzy normalnym wychodzeniu.
Niestety, Vim nie usuwa automatycznie plików wymiany podczas odzyskiwania z nich, więc wkrótce możesz skończyć z katalogiem wyglądającym tak:
.foo.txt.swn
.foo.txt.swo
.foo.txt.swp
foo.txt
Możesz usunąć starsze ręcznie, ale Vim automatycznie zaoferuje odzyskanie tylko wtedy, gdy istnieje *.swpplik, w którym umieściłby swój nowy plik wymiany. :recoverKomenda zmusi Vima szukać plików wymiany w celu odzyskania od.
Korzystając z poleceń automatycznych, możesz zautomatyzować przechowywanie (prawdopodobnie ze QuitPrezdarzeniem) i odzyskiwanie (prawdopodobnie za pomocą BufReadlub BufReadPost). Recover.vim to wtyczka, która może działać jako przyjazna alternatywa dla zarządzania odzyskiwaniem. Wygląda na to, że obsługuje również czyszczenie plików wymiany. Nie jestem pewien, jak poradziłby sobie z katalogiem z plikiem, .swoale bez .swppliku. W :recovertym przypadku może być konieczne użycie .
vim-obsession to kolejna wtyczka, która twierdzi, że znacznie ułatwia obsługę sesji.