Горячий выход - одна из убойных функций редактора Sublime Text. Это позволяет закрыть редактор в любой момент, не беспокоясь об изменениях в открытых файлах - он просто закрывается без вопросов. При повторном запуске ST все открытые и отредактированные файлы будут в том же состоянии, в каком они были до закрытия
Интересно, есть ли способ сделать то же самое в VIM?
Ответы:
Vim может сделать это, хотя это может быть немного неуклюже и потребует некоторой настройки.
romainl получает вас на полпути с
session
. Недостающие биты файлы подкачки,:preserve
, и&
флаг дляcpoptions
.Файлы подкачки предназначены для восстановления в случае сбоя Vim или вашей системы. Они позволяют восстановить любые несохраненные изменения (с некоторыми ограничениями, см
:he swap-file
). Однако, когда Vim завершает работу нормально, он удаляет все файлы подкачки, которые он использовал, даже если в буфере были несохраненные изменения.Вот где
:preserve
иcpoptions
«s&
приходят.:preserve
Силы Vim писать все буферы их файлы подкачки немедленно (в отличие от стандарта через 4 секунды или 200 символов, или что ваши варианты установили его в). Выполнение:set cpoptions+=&
указывает Vim не удалять файлы подкачки, сохраненные:preserve
при обычном выходе.К сожалению, Vim не выполняет автоматическую очистку файлов подкачки при их восстановлении, поэтому вскоре вы можете получить каталог, похожий на этот:
Вы можете удалять старые из них вручную, но Vim будет только автоматически предложит восстановить , если есть
*.swp
файл , в котором было бы поместить новый файл подкачки.:recover
Команда заставит Vim искать файлы подкачки для восстановления.Используя автокоманды, вы можете автоматизировать сохранение (возможно, с
QuitPre
событием) и восстановление (возможно, с помощьюBufRead
илиBufReadPost
). Recover.vim - это плагин, который может работать как более дружественная альтернатива для управления восстановлением. Похоже, также обрабатывать очистку файлов подкачки. Я не уверен, как он справится с каталогом,.swo
но без.swp
файла. Возможно, вам все еще придется использовать:recover
для этого случая.vim-obsession - еще один плагин, который утверждает, что делает обработку сессий намного проще.
источник
Да. Это называется «сессия», и вы можете прочитать все об этом в:
источник