Desplazarse hacia abajo en ambas partes de una ventana dividida al mismo tiempo en Vim

119

¿Es posible desplazarse hacia abajo en las partes izquierda y derecha de una ventana dividida verticalmente en Vim? Tengo dos archivos que me gustaría comparar aproximadamente. Cada línea de estos archivos se ve casi igual.

LB40
fuente

Respuestas:

90

Consulte la documentación para la encuadernación con desplazamiento . Deberá configurar esto para cada ventana que desee enlazar (por ejemplo, un mínimo de 2)

Sin embargo, si está comparando 2 archivos, vimdiff puede ser más útil

Brian Agnew
fuente
4
Vimdiff ... ¿dónde has estado toda mi vida?
hoosierEE
@BrianAgnew solo danos un comando para copiar, hombre. Nos facilita la vida. ¡Gracias por vimdiff!
Nathan
184

Vaya a la primera división y escriba

:set scrollbind

Vaya al siguiente ( ctrl+ w) y haga lo mismo.

Deshabilitar:

:set noscrollbind

Para obtener más información, consulte la documentación de enlace de desplazamiento: http://vimdoc.sourceforge.net/htmldoc/scroll.html#scroll-binding

vyck
fuente
58
Si tiene todos los archivos abiertos, también puede :windo set scrollbindconfigurarlo para todas las divisiones a la vez.
Bernhard
54
:windo set scrollbind

establecerá scrollbind en todas las ventanas.

Vihaan Verma
fuente
3
Si se encuentra haciendo esto mucho, puede resultarle útil tener algo como nmap <F5> :windo set scrollbind!<cr>alternar el desplazamiento en todas las ventanas abiertas.
jlund3
No sé por qué, pero scrollbind!no funcionó para mí, pero lo invscrollbindhizo. Un mapa SUPER. ¡Gracias!
UlfR
11

Buenos dias

¿Intentó usar vimdiff en los dos archivos?

vimdiff file1 file2

Esto le dará el enlace de desplazamiento por defecto.

Rob Wells
fuente
1
el problema es que todas las líneas difieren, está empezando a ser un desastre. Las líneas son casi iguales pero pueden diferir en un carácter ... y no quiero que mi vista se vea demasiado alterada ... aunque gracias.
LB40
1
@ LB40, podría considerar modificar su esquema de colores, consulte stackoverflow.com/questions/24666558/…
qneill
8

Desde la línea de comando:

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

-O = abierto uno al lado del otro.

-c = lo que sigue entre comillas se trata como una opción de vim.

'windo' = se aplica a todos los paneles.

'scb' = abreviatura de scrollbind. Ahorra algo de escritura, pero los dos son intercambiables.

'!' = alternar. De esta manera, puede usar el mismo comando para apagarlo más tarde si así lo desea.

Noé
fuente
5

Para la posteridad, esto es lo que tenía que hacer, ya que no comencé con vimdiff.

Cargué un archivo. Entonces: vsp para cargar el otro.

Son archivos bastante diferentes, pero quería ver qué tienen en común entre ellos.

Entonces...

:set diff
:set diffopt=iwhite
:set scrollbind
Sam Habiel
fuente
3
Puede obtener todos los de un búfer determinado (: diff,: diffopt,: scrollbind) en un comando con: diffthis en cada uno de los búferes
qneill