Vimdiff'teki fark bölümlerini genişletme / daraltma


295

Bugün vimdiff kullanmaya başladım ve Windows tabanlı fark editörlerinde (bir fark bölümünü genişletme / daraltma, tam dosya genişletme / yalnızca 3 bağlam çizgisi ile diffs gibi) aldığım şeylerden bazılarını yapmak istedim veya aşağıda, vb.). Şu anda sadece aşağıdaki komutları biliyorum:

Klavye kısayolları:

  • do - Diğer pencereden geçerli pencereye değişiklikler alın.

  • dp - Geçerli pencereden diğer pencereye değişiklikleri koyun.

  • ]c - Bir sonraki değişikliğe atla.

  • [c - Önceki değişikliğe atla.

  • CTRL+ W, w- Diğer bölme penceresine geç ( CTRL+ W, CTRL+ Waynı şeyi yapar, CTRLanahtarı biraz sonra bırakmanız durumunda )

Benzer özellikleri çoğaltmak için biri beni doğru yöne yönlendirebilir mi?

Örneğin, farkların etrafındaki çizgileri genişletebilir / daraltabilirsem iyi olur.


2
Uzun bir değişiklik listesi eklemek / geri almak için bir kısayol için bkz. Stackoverflow.com/q/6093746/212942
— TCSGrad 25:11


1
Sorunun 4 yıldan fazla bir süre sonra kapalı olduğunu görmek eğlenceli, 'vimdiff' googled olduğunda ilk 3 mesaj olması!
— TCSGrad

Yanıtlar:


241

Bahsettiklerinizin yanı sıra, sadece aşağıdakileri ayırırken sıklıkla kullanıyorum:

  • :diffupdate :diffu-> Farkı yeniden hesaplayın, birkaç değişiklik yaptıktan sonra vim'ler artık minimum değişiklikler göstermiyor. Yalnızca dosyalar vimdiff içinde değiştirilmişse çalışır. Aksi takdirde şunu kullanın:
    • :e vimdiff dışında değiştirilmişlerse dosyaları yeniden yüklemek için.
  • :set noscrollbind-> her iki tamponda eşzamanlı kaydırmayı geçici olarak devre dışı bırakın, yeniden etkinleştirin :set scrollbindve kaydırın.

İstediğiniz çoğu katlanır: vim kullanım kılavuzunun katlama bölümü . Difffs dışında bazen kullanıyorum:

  • zo -> kapağı açın.
  • zc -> kapağı kapatın.

Ancak muhtemelen daha iyi hizmet vereceksiniz:

  • zr -> katlama seviyesinin azaltılması.
  • zm -> bir katlama seviyesi daha lütfen.

ya da:

  • zR -> Katlamayı tamamen azaltın dedim !.
  • zM -> Çoğu katlayın !.

Eğer, kullanım n katlama çizgileri istedi başka şey, bulunabilir seçenekleri vim referans manuel bölüm yoluyla fark bölümünde :

  • set diffopt=<TAB>, ardından güncelleyin veya ekleyin context:n.

Ayrıca diff'deki kullanım kılavuzu bölümüne de bakmalısınız .


Gerçekten çok kapsamlı !! Söylediğiniz bağlantıları kontrol ederdim, ancak daha fazla yanıt alıp almadığımı görmek için soruyu birkaç gün daha açık tutuyorum (bir hafta sonu yayınladım ve o zaman çok insan aktif olmayacaktı).
— TCSGrad

Bu arada, vimdiff'in birleştirme / 3 yollu çözme vb. İçin kullanıp kullanamayacağını biliyor musunuz? O zaman gerçekten harika olurdu!
— TCSGrad

1
@ shan23 3 yönlü birleştirme için (git için) bunu kontrol edin . Svn üzerinde de yorumlar var. Yine de 4 arabellek varsa komutları anlamaya çalışıyorum (do / dp çalışmıyor).
— quornian

İçin :set noscrollbindetkili olması için de gereken :set nocursorbindvarsayılan olmadığı kullandı. Bu nedenle her iki seçenek de ayarlanmalıdır.
— kanlı

4

vimdiff'i durumu görmezden gelmeye ayarla

Vim diff ile başlamış olmak

 gvim -d main.sql backup.sql &

Can sıkıcı bir dosya MySQL anahtar kelimeleri küçük harf diğer büyük harf hemen hemen her satırda farklılıklar gösteren buluyorum

:set diffopt+=icase

bu, ekranı dinamik olarak günceller ve tekrar kolayca kapatabilirsiniz


Bu güzel bir ipucu olsa da, eldeki soru ile nasıl ilişkili olduğunu görmüyorum (vimdiff'de farklı bölümleri genişletme ve daraltma).
— Paul Stelian


0

ctrl + w, w belirtildiği gibi bölmeden bölmeye gitmek için kullanılabilir.

Şimdi tek başına belirli bir değişikliği seçebilir ve aşağıdaki gibi diğer bölmeye yapıştırabilirsiniz.İşte bir kod veriyorum.

  • Bir satırı vurgulamak için Shift-v tuşlarını kullanın ve istediğiniz kod parçasını seçmek için yukarı veya aşağı tuşlarını kullanın ve değişikliklerinizi diğer bölmeye yapıştırmak için aşağıdaki 3. adımdan devam edin.

  • Görsel modu kullanın ve ardından değiştirin

    1 tıklama 'v' bu sizi görsel moda getirecektir 2 gerekli kodu seçmek için yukarı veya aşağı tuşunu kullanın 3 tıklayın, Esc 'kaçış tuşu 4 Şimdi kopyalamak için' yy 'kullanın veya değişikliği kesmek için' dd 'kullanın 5' pane2'ye gitmek için ctrl + w, w '6 Değişikliklerinizi istediğiniz yere yapıştırmak için' p 'düğmesini tıklayın


1
Belirttiğiniz şeyin (ilk satır hariç) tamamı, sözde vimdiff değil, vim'in bir özelliğidir.
— TCSGrad
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.