Dividindo um único arquivo em várias janelas no Vim

0

É possível abrir uma parte do arquivo como uma janela dividida vertical separada no Vim?

Digamos que eu tenha um arquivo com cem linhas, e do quadragésimo até e incluindo sexagésima linhas eu queira ser renderizado como uma janela bloqueada separada dentro da janela principal como uma "aba" dividida para me concentrar melhor naquela parte. arquivo, e as alterações que fiz lá refletiriam sobre o arquivo inteiro na janela principal também.

Eu tenho um arquivo muito longo e gostaria de implementá-lo para gerenciar melhor seu conteúdo.

    
por w17t 28.10.2016 / 04:13

3 respostas

2

Como já foi mencionado, você pode usar splits exibindo o mesmo buffer para chegar até você na maior parte do caminho.

:vsplit

ou

:split

Como para exibir apenas uma seção específica do arquivo, uma maneira de fazê-lo seria dobrar as partes nas quais você não está interessado. Há algumas maneiras de dobrar partes arbitrárias de arquivos.

A maneira mais fácil seria selecionar as linhas que você não deseja ver no modo visual e usar o mapeamento zf para dobrá-lo.

Você também pode usar marcas para dobrar, então você pode colocar uma marca logo acima do texto que você quer ver, mover para o topo do arquivo, e então dobrar para aquela marca, que seria algo como isto:

ma
gg
zf'a

A dobra é por janela (divisão), portanto, qualquer dobra que você tenha em uma janela não afetará outras janelas, mesmo se você tiver o mesmo buffer exibido em cada uma delas.

Se você tiver problemas para criar as dobras, tente definir o método de dobra como manual:

:set foldmethod=manual
    
por 04.11.2016 / 15:13
1

Isso é realmente simples e, felizmente, não precisa de nenhuma configuração. Depois de abrir seu arquivo, execute

:vsplit

ou o atalho de teclado

<C-w>v

que faz a mesma coisa. Isso fará outra janela no mesmo buffer. O bom de fazer isso é que qualquer alteração feita em uma divisão será automaticamente aplicada a outra divisão. Você nem precisa salvar!

O motivo pelo qual isso funciona é porque você tem apenas um buffer, apenas várias visualizações no mesmo buffer.

Você também pode fazer

:split

ou

<C-w>n

que funciona da mesma forma, mas com uma divisão horizontal.

Essa abordagem geral pode ser estendida a um número arbitrário de buffers, divisões e guias.

    
por 28.10.2016 / 04:35
0

Poste o texto abaixo antes de ler com atenção e verifique se você deseja que as alterações feitas na nova divisão sejam refletidas no arquivo original. O que praticamente torna minha resposta obsoleta. Ainda vai deixar isso aqui caso seja útil para qualquer um.

Inspirado nisso: link

Digamos que você tenha ~/.vimrc aberto,

Você pode abrir um novo arquivo em uma divisão primeiro :vsp file

então

:r! sed -n '22,25p;26q' ~/.vimrc

para colocar as linhas 22 a 25 em file

Tenho certeza de que isso poderia ser roteirizado e refatorado. Eu vou olhar para as possibilidades quando tiver algum tempo.

    
por 10.11.2016 / 11:03