Às vezes costumo abrir vários splits e tabs no VIM e quando não termino o trabalho costumo salvar a sessão inteira para não ter trabalho de reabrir todos os arquivos novamente, uma vez que eles ficam em posições que eu já acostumei.
O VIM tem uma “feature” que é pouco usada e pouco conhecida, mas que é bem interessante, e ajuda muito na hora de restaurar todo o workflow de trabalho. Guardar sessões não é novidade para quem usa editores mais modernos, e no VIM não é diferente. Você pode guardar a sessão inteirar e restaurar independente do diretório atual que você esteja.
Para começar isso basta dar um:
:mksession
Isso fará com que o VIM salve um arquivo Session.vim no local em que foi aberto. E esse é o arquivo que você irá usar para restaurar toda sua sessão.
E como restaurar?
Há duas formas de fazer isso, estando com vim já aberto e outra via linha de comando.
Com o editor já aberto:
:source Session.vim
Via linha de comando:
$ vim -S Session.vim
Para deixar as coisas mais fáceis, é interessante ter uma pasta para guardar as sessões. Não é regra, mas um bom lugar para fazer isso é na raíz do seu $MYVIMRC, que no VIM é $HOME/.vim/sessions/. Já no NeoVIM, seguindo o XDG ficaria no $HOME/.config/nvim/sessions/. Simples, os comandos serão os mesmos o que muda é apenas a localização do arquivo de sessão e o nome dele para não conflitar.
:mksession ~/.vim/sessions/minha_sessao.vim
Para saber mais sobre as sessões, basta dar um help no comando:
:help mksession
Existe um plugin para isso!
O desenvolvedor Peter Odding, criou um plugin que ele intitula de “mksession on steroids”, que facilita muito o workflow. O plugin faz tudo que o mksession faz, mas de uma forma mais simples. Com ele você salva e resgata sessões rapidamente sem a necessidade de seguir o caminho do arquivo de sessão.
Você pode saber mais e ler sobre o plugin na sua página do GitHub https://github.com/xolox/vim-session
Este texto foi originalmente publicado no Medium e posteriormente migrado para este site.