karakter olarak farklı


9

İki metin dosyası arasında karakter olarak fark yapmak için Linux'ta kararlı bir araç (mevcut bir aracın seçeneği / eklentisi: vimdiff, diff, vb.) Var mı?

İki dosyam arasındaki en uzun ortak diziyi vurgulamak istiyorum. Bunun için klasik bir polinom-zaman algoritması var, ancak standart araçlar sadece satır satır çalışıyor gibi görünüyor.

Yanıtlar:


2

İyi yaşlı cmp, karaktersel olarak farklıdır. Yaklaşık 40 yıldır UNIX'in bir parçası. https://www.freebsd.org/cgi/man.cgi?query=cmp&apropos=0&sektion=0&manpath=Unix+Seventh+Edition&arch=default&format=html

Ne yazık ki, ilk farklı karakterde duruyor, bu yüzden bu cevabın sizin için yararlı olup olmadığını bilmiyorum.


Teşekkürler. Ben sadece cmp -bl ...bu cevabı bulduktan sonra koştum ve çok farklılıklar ve onların konumlarını bildirdi. Benim versiyonum cmp (GNU diffutils) 3.6.
Dzamo Norton

2

Install diffchar( Eklenti otomatik yükleyici kullananlar için Github bağlantısı ). Eklenti etkinken v4.7'den bu yana, Vim otomatik olarak daha kesin farklılıklar gösterir:

resim açıklamasını buraya girin

  • F7Normal ve eklenti arasında geçiş yapmak için (varsayılan tuş haritası) tuşuna basabilirsiniz . Yeniden ata:

    nmap <silent> <key> <Plug>ToggleDiffCharAllLines
    

    <key>uygun bir anahtar koduyla değiştirme .

  • Daha fazla renk kullanabilirsiniz:

    let g:DiffColors=100
    

Ne yazık ki, bu çizgiler arasında işe yaramaz, en iyi söyleyebilirim. Ancak, ortak bölgeler bırakılır un o yararlanmak mümkün olabilir, böylece -highlighted (ve çok uzun büyürse, katlanmış).


Vi ve Vim Stack Exchange yayınımdan kopyalandı .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.