
¿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.