diff characterwise

9

Existe uma ferramenta estável (opção / plugin de uma ferramenta existente: vimdiff, diff, etc) no Linux para fazer a diferença entre dois arquivos de texto com caracteres?

Eu gostaria de ver a mais longa subseqüência comum entre meus dois arquivos em destaque. Existe um algoritmo clássico de polinômio para isso, mas as ferramentas padrão parecem funcionar apenas linha por linha.

    
por Valentas 16.12.2015 / 14:11

2 respostas

3

O bom e velho cmp faz um diff characterwise. Faz parte do UNIX há cerca de 40 anos. link

Infelizmente, ele pára no primeiro caractere diferente, por isso não sei se essa resposta é útil para você.

    
por 04.01.2016 / 20:58
2

Instale diffchar (Github link para aqueles que usam um autoloader de plugins). Desde a v4.7, com o plug-in ativado, o Vim mostra automaticamente mais diferenças exatas:

  • VocêpodepressionarF7(omapadeteclaspadrão)paraalternarentreousualeoplugin.Reatribuircom:

    nmap<silent><key><Plug>ToggleDiffCharAllLines

    substituindo<key>porumcódigodechaveapropriado.

  • Vocêpodeusarmaiscores:

    letg:DiffColors=100

Infelizmente,issonãofuncionanaslinhas,omelhorquepossodizer.Noentanto,asregiõescomunssãodeixadasun-highlighted(edobradas,secresceremmuitotempo),entãovocêpodetirarproveitodisso.

Copiadodo meu post no Vi e no Vim Stack Exchange .

    
por 04.01.2016 / 21:06