6.14. Сеансы Vim
Проблема
Вы работаете над большим проектом, и работа прерывается на ночь. Как сохранить все: параметры, привязки, открытые файлы, окна, их позицию и размеры? Обычно все это пропадает при завершении работы.
Решение
Нет проблем — создайте сеанс (session). Сеанс Vim сохраняет всю рабочую среду и восстанавливает её в прежнем виде при следующем запуске. Достигнув точки, в которой хотите сохранить свою среду, выполните следующие шаги: сохраните все открытые файлы и задайте имя сеанса.
:wall
:mksession myarticle.vim
В этом примере создаётся файл сеанса myarticle.vim. Чтобы вернуться к сохранённому сеансу, просто введите команду:
$ vim -S myarticle.vim
После работы в этом сеансе у вас есть два варианта. Вы можете сохранить изменения под тем же именем:
:mksession! myarticle.vim
Либо организуйте "доморощенный контроль версий", задав новое имя сеанса:
:mksession myarticle_rev2.vim
Также возможно перейти к другому сеансу без завершения программы:
:wall
:mksession! myarticle_rev2.vim
:source myarticle.vim
У сеансов есть ещё одно интересное применение: создайте идеальную рабочую среду и сохраните её на будущее. Откройте Vim:
$ vim
Выполните необходимые настройки, например, откройте справку и создайте вертикальный раздел окон:
:help
:vertical split /
После того как вы настроили рабочее пространство, можно легко управлять окнами: команда Ctrl+W W используется для переключения между окнами, а команда Ctrl+W + (или -) — для изменения их размеров. Увеличьте окно с деревом файлов и уменьшите окно справки, чтобы вам было удобнее работать с ними.
Когда вы добились нужного результата, сохраните конфигурацию командой:
:mksession 3pane.vim
Теперь вы можете быстро возвращаться к своей идеальной рабочей среде в будущем. Это особенно полезно, если вы регулярно работаете с одним и тем же набором файлов и хотите сохранить настройку окон.
Комментарий
Файлы сеансов рекомендуется хранить в отдельном каталоге, чтобы их можно было легко найти при необходимости. Например, вы можете создать каталог ~/vim_sessions/ и сохранять там все сеансы:
:mksession ~/vim_sessions/myarticle.vim
Сеансы в Vim помогают не только экономить время, но и поддерживать порядок в проекте, особенно если вы работаете с большим количеством файлов или сложной конфигурацией окон. Благодаря сохранению сеансов, вам не нужно вручную восстанавливать свою рабочую среду каждый раз.
См. также
Справочная система Vim (:help session, :help usr_08.txt).