Vim може це зробити, хоча це може бути трохи незграбним і здійснити певну настройку.
Романн змушує тебе розлучитисяsession . Пропущені біти - це файли swap :preserve, та &прапор для cpoptions.
Файли обміну призначені для відновлення, якщо Vim або ваша система виходить з ладу. Вони дозволяють відновити будь-які незбережені зміни (з деякими обмеженнями, див. :he swap-file). Однак, коли Vim закінчується нормально, він видаляє будь-які файли підкачки, якими він користувався, навіть якщо в буфері були незбережені зміни.
Ось де :preserveі cpoptions«s &приходять. :preserveСили Vim писати все буфери їх файли підкачки негайно (на відміну від стандарту через 4 секунди чи 200 символів, або що ваші варіанти встановили його в). Дія :set cpoptions+=&вказує Vim не видаляти файли, що зберігаються, збережені :preserveпри нормальному виході.
На жаль, Vim автоматично не очищає файли підкачки під час відновлення з них, тому незабаром ви можете створити такий каталог:
.foo.txt.swn
.foo.txt.swo
.foo.txt.swp
foo.txt
Ви можете видалити старіші вручну, але Vim запропонує відновити лише автоматично, якщо є *.swpфайл, куди він би розмістив свій новий файл swap. :recoverКоманда змусить Vim шукати файли підкачки для відновлення.
Використовуючи автокоманди, ви можете автоматизувати збереження (можливо, з QuitPreподією) та відновлення (ймовірно, з BufReadабо BufReadPost). Recover.vim - плагін, який може працювати як зручніша альтернатива управління відновленням. Схоже, він також обробляє очищення файлів підкачки. Я не впевнений, як він оброблятиме каталог з файлом, .swoале без нього .swp. Вам може знадобитися використовувати :recoverдля цього випадку.
vim-obsession - ще один плагін, який стверджує, що значно полегшує обробку сеансів.