2010-11-08 12 views
27

Tengo dos almacenamientos intermedios divididos verticalmente en Vim que muestran dos archivos separados que quiero que se muestren y se desplacen sincrónicamente. Con :set scrollbind en la parte superior de ambos buffers, puedo obtener la parte de desplazamiento hacia abajo (de modo que cuando toco zt en un buffer, la línea actual salta a la parte superior en ambos buffers), pero desafortunadamente, la pantalla no está sincronizada.¿Cómo puedo ver y desplazar sincrónicamente buffers divididos verticalmente en Vim?

Lo que esto significa es que si las líneas en los archivos son de diferentes longitudes, los dos búferes no se alinearán visualmente. Me gustaría que Vim muestre saltos de línea adicionales para garantizar que las líneas largas envueltas no interfieran con la visualización sincronizada verticalmente de los dos almacenamientos intermedios.

Gracias!

+0

¿las vas a comparar? es mejor usar 'diff' para esa tarea – Andrew

+0

@Andrew:' vimdiff', ¿verdad? – Cascabel

+0

@Andrew: no, los editaré. Textos en dos idiomas. –

Respuesta

1

Puede utilizar

:set nowrap 

Para detener las líneas largas de ser envuelto, para que sus amortiguadores están sincronizados. No es exactamente lo que pediste, pero está cerca.

+0

Gracias. Los archivos tienen líneas largas (el mismo libro en diferentes idiomas) así que creo que tengo que envolverlos. –

12

Además de configurar scrollbind en ambos buffers, debe emitir el comando :syncbind. Eso debería sincronizar el desplazamiento. No sé si lo hará perfectamente si está envolviendo líneas y los dos archivos tienen líneas de diferentes longitudes. Pero si se desactiva, creo que debería mantenerlos en los mismos números de línea.

+0

Gracias. Normalmente invoco 'scrollbind' en cada buffer manualmente, así que mientras': syncbind' me puede ahorrar algunas pulsaciones de teclas en el camino, todavía tengo el problema de la alineación en presencia de líneas desiguales y largas. –

+4

Syncbind no es una alternativa a scrollbind, cambia el comportamiento cuando dos ventanas tienen scrollbind activado. Por ejemplo, si tengo dos ventanas verticales abiertas con el mismo archivo, pero tengo una ventana estrecha para que las líneas se ajusten, la única manera en que puedo obtener líneas para siempre "alinear" es (creo) emitiendo syncbind. Las líneas, por supuesto, todavía no se alinean perfectamente (nunca pudieron, a menos que se agregaran líneas en blanco como en una vista de diferencias), pero cuando me desplazo hacia arriba o hacia abajo una ventana, las dos líneas en la parte superior coinciden perfectamente. No sé si eso es suficiente para ti, pero las líneas en la parte superior siempre coinciden. –

0

Dudo que Vim sea realmente apropiado para buffers diferenciales que tienen líneas de texto muy largas si es necesario envolverlos, y sin embargo, soy un verdadero aficionado de Vim.

Lo que podría sugerir a usted es:

  • Con vim, números de línea de inserción delante de cada línea, y haga doble espacio de archivos (:g/^/put _). Si está traduciendo, ¿los números de línea no deberían estar sujetos a cambios?
  • Abra ambos archivos con Kompare o Meld que tengan trucos gráficos para unir suavemente líneas de longitudes desiguales. Luego, adapte el esquema de colores para comportarse como si no fuera una herramienta diferente.
Cuestiones relacionadas