VIM: Cómo diferenciar líneas específicas en dos archivos diferentes

VIM: Cómo diferenciar líneas específicas en dos archivos diferentes

¿Cómo se pueden diferenciar las líneas 2 a 4 en el archivo A y las líneas 8 a 10 en el archivo B?

Además, ¿es posible seleccionar visualmente las líneas de cada archivo en lugar de escribir los números de línea?

¡Gracias!

Respuesta1

La solución que desea no existe actualmente en Vim, aunque algunos desarrolladores están discutiéndola. Hay dos soluciones que he usado.

Una es eliminar la línea 1 en el archivo A y las líneas 1 a 7 en el archivo B y diferenciar las líneas restantes (por ejemplo, con :windo diffthis).

La otra es utilizar un complemento comoNrrwRgnpara copiar las líneas de interés en nuevos buffers y luego diferenciar esos buffers. Una característica interesante del complemento NrrwRgn es que puede realizar cambios en esos nuevos búferes y, cuando los sale, los cambios se copian nuevamente a los búferes originales.

Para cualquier operación de Vim para la que pueda especificar un rango de líneas, ese rango se puede especificar de varias maneras. Una es utilizar números de línea. Otra es seleccionar visualmente la región por líneas. Ver

:help [range]
:help V

Usando el complemento NrrwRgn para resolver su ejemplo, colocaría el cursor en la línea 2 del archivo A y escribiría

Vjj\nr

para seleccionar visualmente las líneas 2 a 4 ( Vjj) y copiarlas en un nuevo búfer ( \nr). Luego coloque el cursor en la línea 8 del archivo B y repita la misma secuencia. En cada uno de los dos nuevos buffers, ejecute

:diffthis

No es elegante, pero funciona.

información relacionada