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).