2010-11-08 13 views
27

Vim'de iki adet dikey olarak bölünmüş arabellek var; her ikisi de görüntülendiğim ve eşzamanlı olarak kaydırılmasını istediğim iki ayrı dosya gösteriyor. Her iki arabelleğin en üstündeki :set scrollbind ile kaydırma parçasını indirebilirim (böylece bir tamponda zt numaralı tuşa bastığımda, geçerli satır her iki arabellekte üst üste atlar), ancak maalesef ekran senkronize edilmiyor.Vim'de dikey olarak bölünmüş arabellekleri eşzamanlı olarak nasıl görüntüler ve kaydırır?

Bunun anlamı, dosyalardaki satırların farklı uzunluklarda olması durumunda, iki arabellek görsel olarak hizalanmayacaktır. Uzun sarmallı çizgilerin, iki arabelleğin dikey olarak senkronize görüntüsüne müdahale etmemesini sağlamak için Vim'in ekstra satır kesmeleri göstermesini isterim.

Teşekkürler!

+0

Onları karşılaştırır mısınız? – Andrew

+0

@Andrew: 'vimdiff 'gibi bir görev için' diff' kullanmanız daha doğru olur mu? – Cascabel

+0

@Andrew: Hayır, onları düzenleyeceğim. İki dilli metinler. –

cevap

1

Sen tamponlar senkronize şekilde, sarılı olmaktan uzun satırları durdurmak için

:set nowrap 

kullanabilirsiniz. Tam olarak istediğin gibi değil ama yakın.

+0

Teşekkürler. Dosyalar uzun satırlar (farklı dillerde aynı kitap) var, bu yüzden sarmam gerektiğini düşünüyorum. –

12

Her iki arabellekte kaydırmayı ayarlamaya ek olarak, :syncbind komutunu da vermeniz gerekir. Bu, kaydırma işlemini senkronize etmelidir. Çizgileri sararsanız ve iki dosya farklı uzunluktaki çizgilere sahipseniz mükemmel bir şekilde yapıp yapmayacağını bilmiyorum. Ama eğer kapatırsan, onları aynı satır numaralarında tutmalıyım.

+0

Teşekkürler. Genelde her tamponda "scrollbind" i çağırıyorum, bu yüzden: syncbind bana yol boyunca bazı tuş vuruşlarını kaydedebilir, hala eşit olmayan ve uzun sarılmış çizgiler varlığında hizalama problemim var. –

+4

Syncbind, scrollbind'e bir alternatif değildir, iki pencerede de scrollbind olduğunda davranışı değiştirir. Örneğin, aynı dosyayla açılan iki dikey pencerem varsa ancak bir pencere dar, böylece satırlar sarılırsa, her zaman "sıralanacak" çizgiler alabilmem için tek yol, (bence) senkronizasyon yayınlayarak. Hatlar hala mükemmel bir şekilde hizalanmazlar (farklı görünümlerde boş satırlar eklenmedikçe hiçbir zaman yapamazlardı), ancak bir pencereyi yukarı veya aşağı kaydırırken, pencerenin üstündeki iki satır her zaman mükemmel şekilde eşleşir. Bunun sizin için yeterli olup olmadığını bilmeyin, ancak en üstteki çizgiler her zaman eşleşir. –

0

Vim'in, onları sarmanız gerekiyorsa çok uzun metin satırları olan dikey olarak arabellekleri ayırt etmek için gerçekten uygun olduğundan şüpheliyim ve yine de gerçek bir Vim meraklısıyım.

Ben sana ne hatırlatıyoruz geçerli: vim, insert satır numaraları her satırın önüne ve çift boşluk dosyalarınızı (:g/^/put _) ile

  • . Eğer çeviri yapıyorsanız, satır numaraları gerçekten değişikliklere tabi tutulmamalıdır?
  • Her iki dosyayı eşit olmayan uzunluklarda satırları düzgün bir şekilde bağlamak için grafik hileleri olan Kompare veya Meld ile açın. Ardından, renk düzenini, farklı bir araç olmasa gibi davranacak şekilde uyarlayın.
İlgili konular