VIM: Como diferenciar linhas específicas em dois arquivos diferentes

2

Como pode um diff linhas 2-4 no arquivo A e linhas 8-10 no arquivo B?

Além disso, é possível selecionar visualmente as linhas em cada arquivo em vez de anotar os números das linhas?

Obrigado!

    
por dotancohen 03.07.2012 / 17:03

1 resposta

1

A solução que você deseja não existe atualmente no Vim, embora alguns desenvolvedores estejam discutindo isso. Existem duas soluções que usei.

Um é excluir a linha 1 no arquivo A e as linhas 1-7 no arquivo B e diferenciar as linhas restantes (por exemplo, com :windo diffthis ).

O outro é usar um plugin como NrrwRgn para copiar as linhas de interesse para novos buffers, em seguida, diferenciar esses buffers. Uma boa característica do plugin NrrwRgn é que você pode fazer alterações nesses novos buffers e quando você os fecha, as mudanças sã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 é a linha visualmente selecionar a região. Veja

:help [range]
:help V

Usando o plugin NrrwRgn para resolver o seu exemplo, você colocaria o cursor na linha 2 do arquivo A e digitaria

Vjj\nr

para selecionar visualmente as linhas 2-4 ( Vjj ) e copiá-las para um novo buffer ( \nr ). Em seguida, coloque o cursor na linha 8 do arquivo B e repita a mesma sequência. Em cada um dos dois novos buffers, execute

:diffthis

Não é elegante, mas funciona.

    
por 03.07.2012 / 17:56

Tags