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.