Se você está confortável com vim , eu recomendo strongmente que você use vimdiff :
vimdiff file1 file2
Isso abrirá uma sessão vim com dois painéis, com um arquivo em cada lado. Destaques e cores indicarão diferenças entre os arquivos, e todas as partes idênticas serão ocultadas (dobradas, mas expansíveis).
Em seguida, se quiser mesclar seletivamente diferenças de um arquivo para outro, use os seguintes comandos:
(Considere o "arquivo atual" para ser aquele onde o cursor é)
^ W ^ W para alterar o foco da janela de um arquivo para a janela do outro arquivo
] c para avançar para o próximo bloco com diferenças
[c para reverter a pesquisa do bloco anterior com diferenças
faça ( d iff o btain) para trazer as mudanças do outro arquivo para o arquivo atual
dp ( d iff p ut) para enviar as alterações do arquivo atual para o outro arquivo
Observação: do e dp funcionam se você estiver em um bloco ou apenas uma linha em um bloco.
u para u ndo
zo para desdobrar / ocultar o texto
zc para voltar a dobrar / ocultar o texto
zr irá desdobrar os dois arquivos completamente (use : ajuda dobrada para mais informações sobre dobrar)
: diffupdate irá verificar novamente os arquivos em busca de alterações
À medida que você começa a mudar o texto alterado ou trazendo alterações, as partes agora idênticas dos arquivos também serão automaticamente desdobradas.
Quando terminar, você pode sair e gravar os dois arquivos com : xa!
Você também pode escrever, sair, descartar alterações, etc., um painel por vez, como faria normalmente com o vim.
Você pode usar todos os comandos comuns do vim para editar os arquivos à vontade; Eu só descrevi os comandos mais comuns e úteis que você provavelmente usará em uma sessão vimdiff (em oposição a um genérico do vim).