Vim может сделать это, хотя это может быть немного неуклюже и потребует некоторой настройки.
romainl получает вас на полпути с session
. Недостающие биты файлы подкачки, :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
файл , в котором было бы поместить новый файл подкачки. :recover
Команда заставит Vim искать файлы подкачки для восстановления.
Используя автокоманды, вы можете автоматизировать сохранение (возможно, с QuitPre
событием) и восстановление (возможно, с помощью BufRead
или BufReadPost
). Recover.vim - это плагин, который может работать как более дружественная альтернатива для управления восстановлением. Похоже, также обрабатывать очистку файлов подкачки. Я не уверен, как он справится с каталогом, .swo
но без .swp
файла. Возможно, вам все еще придется использовать :recover
для этого случая.
vim-obsession - еще один плагин, который утверждает, что делает обработку сессий намного проще.