MacVim / Vim сохраняют содержимое всех буферов (например, Sublime Text). Сохранить своп?

2

TL; DR: Может ли Vim хранить свои файлы подкачки и каждый раз загружать один и тот же набор файлов подкачки и буферов?

Я работаю на Mac (OS: Maverick), где несколько приложений хранят данные в каком-то локальном / недоступном хранилище, которое восстанавливается между перезагрузками компьютера / сбоями приложений.

В качестве « хранилища » возьмите Sublime Text в качестве примера, как только я открываю новую вкладку, она сохраняет содержимое вкладки, даже если я не сохранил вкладку явно как файл для постоянного хранения в любом месте. Поэтому, если бы я закрыл ST и снова открыл его (или он / машина зависала), он восстановил бы все вкладки и контент, которые у меня были до закрытия.

Такого рода дурака контента удержания (TM) можно увидеть через несколько приложений Mac (например IMOVIE, QuickTime Player, TextEdit и т.д.), и в соответствии с философией дизайна Мака из всегда позволяя пользователю продолжать , где они остановились - без необходимости что-либо сохранять явно.

Учитывая тот факт, что:
1. Vim сохраняет файлы подкачки и обновляет каждые 200 ударов / 4 секунды бездействия до recover
2. Vim имеет параметры запуска, которые позволяют открывать файлы / своп

у меня есть достаточное основание для того, чтобы задаться вопросом, нет ли в Vim / MacVim этой функции сохранения контента (TM) среди сотен вариантов конфигурации?

PS В настоящее время я использую vim-сессий исключительно для «проекта, подобного группированию файлов», но он не сохраняет содержимое для несохраненных буферов.

pps играет с :preserveопцией и cpoptions+=&в .vimrc. Кажется, не оказывает влияния, файлы подкачки по-прежнему удаляются на MacVim, закрывается, и ничего не открывается при повторном запуске MacVim

заснеженный
источник
Можете ли вы опубликовать ссылку на свой .vimrc? Особенно какие-либо части, которые ссылаются на сессионные опции?
Аарон Д
Поскольку вы сравниваете с Sublime Text, почему бы не сделать Sublime редактором по умолчанию? Если вы экспортируете псевдонимы в «/ usr / local / bin / subl -nw» для EDITOR, vi, vim, GIT_EDITOR и т. Д., Вы можете иметь то, что вам нравится в Sublime, постоянно.
SaxDaddy
@SaxDaddy. Две причины. 1) Урожайный, в то время как отличный плагин ST по-прежнему не обладает уровнем всесторонности vim (например, редактирование макросов). 2) Коммерческие затраты. Я редактирую большую часть своего кода в IntelliJ IDEA, что означает, что я использую VIM в основном для быстрого редактирования. Необходимость платить 70 долларов за привилегию ST, когда она не является моим основным редактором, кажется немного непомерной.
заснеженный
@SaxDaddy, кроме того. ST3 имеет отставание при печати (на MacBook Pro 2011 года, i7, 8 ГБ, SSD) по сравнению с Vim.
заснеженный

Ответы:

2

Упомянутая вами функциональность сеансов - это то, что вам нужно, но вам нужно передать ей опцию, чтобы она сохраняла буферы, а также открывала файлы и позиции. Вы можете использовать :mksessionдля этого.

Тем не менее, :mksessionвсе еще контролируется вручную; хотя вы можете связать его с горячими клавишами для быстрого сохранения / восстановления функциональности, если вы забудете выполнить команду, вы потеряете сеанс.

По этой причине я рекомендую плагин Vision Session.vim . Это (наряду с несколькими дополнительными опциями в вашем .vimrc) будет автоматически сохранять и восстанавливать сессии. Полный список опций находится на странице. В частности, вы хотите сказать ему, чтобы передать buffersпараметр sessionoptions, как на этой странице .

Аарон Д
источник
1
Привет @aaron D, у меня Session.vim установлен через vim-session (который является зеркалом Session.vim: github.com/xolox/vim-session ). Я не уверен, что использую неправильные опции. Вы говорите, что mksession или Session.vim могут сохранять содержимое несохраненных буферов?
заснеженный
1
Ваше предложение, чтобы убедиться, что buffersоно в 'sessionoptions', не приводит к тому, что содержимое буфера «Без имени» будет сохранено и восстановлено. На самом деле buffersуже был в списке. Я добавил set sessionoptions+=buffersв свой, vimrcчтобы быть уверенным, и попробовал оба :mksession/ :sourceи :SaveSession/ :OpenSession, но содержимое буфера все еще потеряно.
Рори О'Кейн