Есть ли плагин vim, который реализует функцию горячего выхода из возвышенного текста


11

Горячий выход - одна из убойных функций редактора Sublime Text. Это позволяет закрыть редактор в любой момент, не беспокоясь об изменениях в открытых файлах - он просто закрывается без вопросов. При повторном запуске ST все открытые и отредактированные файлы будут в том же состоянии, в каком они были до закрытия

Интересно, есть ли способ сделать то же самое в VIM?


: xa выйти из всех (сохранить все изменения и закрыть Vim)
— Sim

Это записывает файлы, но больше ничего не сохраняет. Я думаю, что ОП хочет что-то, что одновременно сохраняет файлы без их записи и сохраняет состояние любых открытых вкладок или буферов
— EvergreenTree

Да, я понял это позже из его комментариев.
— Сим

Ответы:


6

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 - еще один плагин, который утверждает, что делает обработку сессий намного проще.


1

Да. Это называется «сессия», и вы можете прочитать все об этом в:

:help session

1
Я в курсе сессий. Но, похоже, это не то же самое - он сохраняет все открытые буферы и вкладки (и настройки), но если у вас есть какие-то изменения в одном из буферов, вы должны записать их на диск перед выходом. В возвышенном тексте вам не нужно сохранять открытый файл при выходе - Sublime сохраняет все изменения в нем в отдельном месте и восстанавливает их при повторном открытии. Таким образом, оригинальный файл не тронут на диске, но изменения также не потеряны
— LazyS

Да, это было бы основным отличием. Не знаю, можно ли это сделать каким-либо образом, не прибегая к tmux / screen / detach.
— Ромен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.