
Como alguém pode diferenciar as linhas 2 a 4 no arquivo A e as linhas 8 a 10 no arquivo B?
Além disso, é possível selecionar visualmente as linhas de cada arquivo em vez de anotar os números das linhas?
Obrigado!
Responder1
A solução que você deseja não existe atualmente no Vim, embora alguns desenvolvedores estejam discutindo isso. Existem duas soluções que usei.
Uma é excluir a linha 1 no arquivoA e as linhas 1-7 no arquivoB e diferenciar as linhas restantes (por exemplo, com :windo diffthis
).
A outra é usar um plugin comoNrrwRgnpara copiar as linhas de interesse para novos buffers e, em seguida, diferencie esses buffers. Um recurso interessante do plugin NrrwRgn é que você pode fazer alterações nesses novos buffers e, ao encerrá-los, as alterações serão copiadas de volta para os buffers originais.
Para qualquer operação do Vim para a qual você pode especificar um intervalo de linhas, esse intervalo pode ser especificado de várias maneiras. Uma é usar números de linha. Outra é selecionar visualmente a região em linha. Ver
:help [range]
:help V
Usando o plugin NrrwRgn para resolver seu exemplo, você colocaria o cursor na linha 2 do arquivoA e digitaria
Vjj\nr
para selecionar visualmente as linhas 2 a 4 ( Vjj
) e copiá-las para um novo buffer ( \nr
). Em seguida, coloque o cursor na linha 8 do arquivoB e repita a mesma sequência. Em cada um dos dois novos buffers, execute
:diffthis
Não é elegante, mas funciona.