Rolando para baixo em ambas as partes de uma janela dividida ao mesmo tempo no Vim

119

É possível rolar para baixo as partes esquerda e direita de uma janela dividida verticalmente no Vim? Tenho dois arquivos que gostaria de comparar aproximadamente. Cada linha desses arquivos parece quase igual.

LB40
fonte

Respostas:

90

Consulte a documentação para vinculação de rolagem . Você precisará definir isso para cada janela que deseja vincular (por exemplo, no mínimo 2)

Se você está comparando 2 arquivos, no entanto, vimdiff pode ser mais útil

Brian Agnew
fonte
4
Vimdiff ... onde você esteve toda a minha vida?
hoosierEE
@BrianAgnew apenas nos dê um comando para copiar, cara. Facilita nossas vidas. Obrigado por vimdiff, no entanto!
Nathan
184

Vá para a primeira divisão e digite

:set scrollbind

Vá para o próximo ( ctrl+ w) e faça o mesmo.

Desabilitar:

:set noscrollbind

Para obter mais informações, verifique a documentação para vinculação de rolagem - http://vimdoc.sourceforge.net/htmldoc/scroll.html#scroll-binding

vyck
fonte
58
Se você tem todos os arquivos abertos, também pode :windo set scrollbindconfigurá-los para todas as divisões de uma vez.
Bernhard
54
:windo set scrollbind

irá definir o scrollbind em todas as janelas.

Vihaan Verma
fonte
3
Se você se nmap <F5> :windo set scrollbind!<cr>pega fazendo muito isso, pode ser útil ter algo como alternar a barra de rolagem em todas as janelas abertas.
jlund3
Não sei por que, mas scrollbind!não funcionou para mim, mas invscrollbindfuncionou. Um mapeamento SUPER. Obrigado!
UlfR de
11

Bom dia,

Tentou usar o vimdiff nos dois arquivos?

vimdiff file1 file2

Isso fornecerá a ligação de rolagem por padrão.

Rob Wells
fonte
1
o problema é que todas as linhas são diferentes, está começando a ficar uma bagunça ... As linhas são quase iguais, mas podem diferir em um caractere ... e eu não quero que minha visão seja muito perturbada ... obrigado.
LB40
1
@ LB40 você pode considerar ajustar seu
esquema de cores
8

Na linha de comando:

vim -O file1 file2 -c 'windo set scb!'

-O = aberto lado a lado.

-c = o que segue entre aspas é tratado como uma opção do vim.

'windo' = aplica-se a todos os painéis.

'scb' = abreviação para scrollbind. Economiza um pouco de digitação, mas os dois são intercambiáveis.

'!' = alternar. Dessa forma, você pode usar o mesmo comando para desligá-lo posteriormente, se desejar.

Noé
fonte
5

Para a posteridade, eis o que eu precisava fazer, já que não comecei com o vimdiff.

Eu carreguei um arquivo. Então: vsp para carregar o outro.

Eles são arquivos bem diferentes, mas eu queria ver o que há de comum entre eles.

Assim...

:set diff
:set diffopt=iwhite
:set scrollbind
Sam Habiel
fonte
3
Você pode obter todos aqueles para um determinado buffer (: diff,: diffopt,: scrollbind) em um comando com: diffthis em cada um dos buffers
qneill