Bir satırda daha ayrıntılı karşılaştırma


17

vimdiffDosyalar arasındaki farkları incelemek için kullanıyorum ve bazen biraz kaçırıyor. Örneğin, aşağıdaki iki dosyam varsa:

//a.c
printf("Hello\n");

ve:

//b.c
int i = printf("hello\n") + 3;

bunları göstermek vimdiff:

resim açıklamasını buraya girin

Görmek isteyeceğim şey, bc'de hbüyük harfle yazılmamış olmasıdır.

Vimdiff'e (o satırda) sadece bir kısmını karşılaştırmasını söylemenin bir yolu var mı (yani, görmezden gelmek int i =ve ve + 3)?


4
Diffchar eklentisi onunla sıfır deneyime sahip ne gerekmez ama muhtemelen. Belki bu deneyimi kullanan biri iyi, ayrıntılı bir cevap verebilir (ya da belki bir alternatif olabilir).
tokoyami

Yanıtlar:


15

Bunun Vim tarafından yapılabileceğini sanmıyorum. Kimden :h view-diffs(vurgu mayın):

hl-DiffText DiffText Değişen satır içindeki metni değiştirdi.  gayret
                                farklı olan ilk karakteri bulur,
                                ve farklı olan son karakter
                                (satır sonundan arama). 
                                aradaki metin vurgulanır.  Bu şu anlama gelir
                                hala ortada olan
                                yine de vurgulanır.   Yalnızca "iwhite"
                                Burada 'dağılmış' kullanılmıştır.

Tokoyami'nin önerisi bizi bir adım daha yaklaştırıyor. 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
    

+1 ama "bir adım daha yakın" benim için aşırı tutucu görünüyor. Diffchar bu sorunu IMO'yu tamamen çözer.
Sparhawk

@Sparhawk iyi, bir satırdaki ortak öğeleri görmezden gelmiyor (OP sadece vurgulanan değişiklikleri istiyor)
muru

Anladığımdan emin değilim. Bu örnekte (ör. printfVe ello) ortak öğeler yok sayılmıyor mu?
Sparhawk

1
@Sparhawk bu örnekte, evet. Ancak daha karmaşık değişikliklerle, hızla dağınık hale gelir.
muru

Ah tamam, o zaman biraz buggy ... bilgi için teşekkürler.
Sparhawk
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.