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

826
snowbound

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

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

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

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

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

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

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

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

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

1 ответ на вопрос

2
Aaron D

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

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

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

Привет @aaron D, у меня Session.vim установлен через vim-session (который является зеркалом Session.vim: https://github.com/xolox/vim-session). Я не уверен, что использую неправильные варианты. Вы говорите, что mksession или Session.vim могут сохранять ** содержимое ** несохраненных буферов? snowbound 9 лет назад 1
Ваше предложение, чтобы убедиться, что «buffers» находится в «sessionoptions», не приводит к тому, что содержимое буфера «No Name» сохраняется и восстанавливается. На самом деле, `buffers 'уже был в списке. Я добавил `set sessionoptions + = buffers` в мой` vimrc`, чтобы быть уверенным, и попробовал оба `: mksession` /`: source` и `: SaveSession` /`: OpenSession`, но содержимое буфера все еще потеряно. Rory O'Kane 9 лет назад 1