Instância solitária do Vim
Publicado/atualizado em 14/11/2007 22:07
O meu amigo Lorn estava com uma dúvida agora há pouco. Ele é chique (ah, eu tenho que dar uma zuadinha vai) e tem um Mac onde utiliza o Textmate e queria saber se dava para replicar a seguinte feature no Vim: sempre abrir os arquivos na mesma instância do editor, em uma aba nova.
Se você gostou da idéia, continue lendo. Vamos trabalhar nesse script em um ambiente *NIX (onde o Mac OS se encaixa também) e com o editor no modo gráfico, se você quiser no console é só trocar de gvim para vim e fazer as adaptações necessárias. Vamos fazer alguns testes para ver se o script vai funcionar:
- Feche todas as instâncias do editor que estiverem abertas.
- Verifique se quando você digita vim --serverlist você não recebe uma mensagem de erro.
- Se recebeu, teste com gvim --serverlist. Se mesmo assim ocorreu a mensagem de erro, ou o seu editor está em uma versão muito antiga ou não foi compilado com esse recurso. Aí você tem que dar um jeito de atualizar ou compilar o bicho na unha e depois voltar nesse passo.
- Ok, se tudo correu bem, ele não deve retornar nada pois não há nenhuma instância aberta (você fez o que eu pedi no item 1, não fez?). Se houvessem algumas instâncias pipocando por seu computador, seria(m) retornado(s) o(s) nome(s) que o editor se "registrou".
- Para evitar dar algum piripaque, vamos garantir que vamos pegar sempre o primeiro nome retornado se por acaso já havia alguma coisa aberta. Vamos pegar isso com o head -n1, que vai extrair a primeira linha. Fica assim: gvim --serverlist | head -1
- Ok, agora vamos criar um alias para chamar o editor dizendo o seguinte para ele "ei, se já tiver uma instância aberta conecte-se nela e abra o arquivo que estou pedindo em uma nova aba". Para isso vamos inserir o conteúdo do nosso comando acima dentro de outro:
alias tvim="gvim --servername `gvim --serverlist | head -1` --remote-tab" - Chamei o alias de tvim, de "tab vim", mas sintam-se à vontade para chamá-lo do que quiserem, tipo "ovtrta" (one Vim to rule them all). ;-)
Pronto, a partir desse momento sempre que o alias for chamado ele vai abrir os arquivos sempre na mesma instância do editor, em uma aba nova. Ah, tem que ser o Vim 7.x para frente, onde há os suportes de abas. Mais detalhes sobre essas opções podem ser encontrados aqui.
Permalink: http://eustaquiorangel.com/posts/477
salvar no del.icio.ussalvar no diggsalvar no rec6 Veja o que estão dizendo sobre isso.Comente
Linhas em branco viram saltos de linha. Se você quiser mostrar algum código, por favor use o pastebin e informe a URL.
Comentários
Uia.. Mandou bem nessa dica TaQ. Muito interessante e util esse negócio ai.
Boa dica, TaQ... Mas eu reparei que, ao menos comigo, eu não posso utilizar um tvim /path/do/arquivo: ele abre uma nova instância do gVim.
Segui uma dica e acabei com isso: http://pastebin.com/f7a69dcd7
Abraço
Muito boa a dica,
Procurei no link que você indicou mais não achei nada sobre fazer com que a janela do gvim ganhe o foco quando abrir um arquivo em uma aba. Tem alguma ideia de como fazer isso?
Obrigado






