Vim em vários monitores

9

Alguém tem uma solução elegante para ter MacVim ou gvim em vários monitores (resolução potencialmente diferente)? Ter 2 sessões não funciona bem devido a buffers separados e arquivos de troca.

Você pensaria que poderia ter duas janelas GUI compartilhando os mesmos buffers, mas não consigo encontrar nada que funcione.

Patm
fonte
11
Eu gostaria de saber a resposta para isso também. Encontrei este vimdoc.sourceforge.net/htmldoc/remote.html que parece ser a direção certa. Mas ainda não tentei.
Amjith 25/10

Respostas:

1

Expanda a gvimjanela para cobrir as duas telas e use CTRL-W vpara dividir a janela de edição verticalmente.

Veja :help CTRL-Wpara mais comandos da janela.

MikeyB
fonte
11
Estou bem ciente de dividir janelas. Infelizmente, isso não funciona bem com diferentes resoluções de monitor. Parece que realmente não há uma boa maneira de fazer isso.
Patm 26/10/11
1

Também costumo usar vários monitores, portanto, fiz uma solução simples para usar até que o vim implemente esse recurso. Usando um script lua chamado gitv, posso abrir um arquivo em várias instâncias do GVIM ao mesmo tempo. Basicamente, quando há duas instâncias do GVIM denominadas GVIM1 e GVIM2, o que eu fiz foi simplesmente garantir que apenas um arquivo seja editável por vez e todos os outros sejam visualizadores. (Tudo é feito automaticamente sem aviso prévio.)

Fluxo de trabalho: Atualmente, o gitv é projetado para repositórios git, portanto, pode ser usado apenas para esses arquivos em um repositório git. Você pode alterar facilmente esse comportamento padrão modificando a função lsFiles ().

Para abrir primeiro a.txt no GVIM1, use

$ gitv gvimr GVIM1 a.txt

Isso abrirá uma janela gvim se não houver uma. Em seguida, para abrir o mesmo a.txt em outra instância GVIM2, use

$ gitv gvimr GVIM2 a.txt (ou você pode criar um alias como $ gvim2 a.txt)

Em seguida, o gitv realiza internamente o seguinte:

  1. encontre todas as instâncias do gvim com "a.txt" abertas. (Nesse caso, GVIM1)
  2. defina todos esses buffers a.txt "somente leitura", "nomodificável" e "leitura automática".
  3. O buffer modificado será gravado no disco antes de ser definido como "somente leitura".)
  4. remova o arquivo de troca.
  5. reabra o a.txt no GVIM2. (o gvim pode abrir esse arquivo sem problemas porque não há arquivo de troca.)

Se você deseja editar a.txt no monitor 1 em vez do monitor 2, faça isso para alternar o buffer ativo: $ gitv gvimr GVIM1 a.txt (ou gvim1 a.txt) Isso pode ser feito mais facilmente dentro do gvim1 usando ctrl + g + a.txt

(Isso definirá automaticamente o mesmo buffer aberto em outras instâncias do gvim "somente leitura" para evitar corrupção de dados.)

O gitv pode ser baixado aqui: http://code.google.com/p/gitv/ Foi testado apenas no linux gvim, mas pode ser portado facilmente para o MacVIM.

tbear
fonte