Pense na cena: você está programando uma certa funcionalidade de um determinado projeto, vamos chamá-lo de A. Então, você tem 4 arquivos abertos em buffers dentro do Vim. Criou uns mapeamentos do teclado extra, só para o momento. Também tem marcadores que pulam de um trecho do código para outro. Está tudo do jeito que você adora.
Chega, então, o seu chefe e diz: “Cara, preciso que tu veja algo em outro projeto.” ou até mesmo atualiza seu kernel e precisa rebootar o sistema. Chega sua namorada e pede pra ver o orkut. Seja qual seja o motivo, você precisa fechar o Vim. Mas, mais tarde, vai voltar a mexer, nestes 4 mesmos arquivos. Vai refazer todos os mapeamentos, refazer as marcações, etc.
Pois, se já aconteceu isso com você – comigo acontece muito frequênte -, você pode usar o :mksession.
A sintaxe é a seguinte:
:mksession ~/.vim-sessions/projeto-A.vim
Você escolhe o nome do arquivo e o diretório e o vim grava no arquivo as informações exatas do editor no momento em que foi executado o comando. Dentre as coisas das quais ele grava estão:
- Mapeamentos de teclas
- Variáveis globais (iniciadas com maiúsculas e que tenham pelo menos 1 caracter minúsculo)
- Caso use o GVim, grava o posicionamento e o tamanho dele na tela
- Todos os arquivos abertos em buffers e o ponteiro do mouse
- O estado visual do Gvim (folds, marks, incserch)
Depois de gravada, para recarregar a session, basta abrir o arquivo.
gvim -S ~/.vim-sessions/projeto-A.vim ou vim -S ~/.vim-sessions/projeto-A.vim
Eu tenho usado bastante para funcionalidades que requerem muita manutenção. Por exemplo, no desenvolvimento web.
vim -S ~/.vim-sessions/projetoA-javascripts.vim vim -S ~/.vim-sessions/projetoA-accounts.vim
Assim, até o módulo de accounts ficar pronto, testado e aprovado pelo inmetro, todos os arquivos relacionados estão ali. E quando acaba o expediente, sobreescrevo a session, para que no próximo dia eu possa dar continuidade.
E você? Tem alguma idéia melhor? Comente!
0sem comentários ainda