İki metin dosyasını aynı anda yan yana görüntüleyin


21

İki tane metin dosyam var. Her satır bir dilde bir çizgiyi temsil eder. Hizalamanın her zaman uyup uymadığını kontrol etmem gerekiyor. Bu nedenle, her iki metin dosyasını da aynı anda satır numaralarıyla gösteren bir programa ihtiyacım var.

Dağınıklığı denedim, ancak bu dosyaları hizalamaya çalışır - kazayla iki satır eşitse, tüm satır başına görsel karşılaştırma çalışmaz.

Yanıtlar:


28

scrollbindSet ile Vim kullanın . Örneğin:

vim -O +'windo set scrollbind' /etc/profile /etc/profile.pacnew

görüntü tanımını buraya girin

İle scrollbindtek bir pencerede kaydırma eğer, diğer ciltli pencereleri aynı anda ilerleyin. Satır numaralarına sahip olmak için, ~/.vimrcen az aşağıdaki iki satıra sahip olmak yeterlidir:

set nocompatible
set number

Değil o lüzum bir vimrcbunun için - bu komut ile tamamen yapılabilir:

vim -NO +'set nu' +'windo set scrollbind' file1 file2 ...

12

Unix'in ilk günlerinden bir emir hakkında ne düşünüyorsunuz?

pr -m file1 file2

Örneğin:

pr  -m English Spanish

2016-01-18 00:34                                                  Page 1

this is something                esto es algo
hello, there                     Hola

Güncelleme: Kullanarak terminalin boyutuna uygun bir çıkış elde edebilirsiniz.less

pr -m file1 file2 | less

4
Bunu önerebilirsem, less -Nbirlikte satır numaralarını göstermesi için çıkışı yönlendirin . pr -m file1 file2 | less -N.
Sergiy Kolodyazhnyy

11

GUI'den deneyebilirsiniz meld:

ekran görüntüsü

Tam olarak istediğin bu değil, ama amacın için çok faydalı olmalı.

Ek metin bölümleri yeşil renkle vurgulanır, metnin farklı bölümleri mavi renkle vurgulanır (ve aynı şekilde metnin farklı bölümlerinde ek karakterler koyu mavi renkte vurgulanır).

Aynı anda ikiden fazla dosya için de çalışır.


Meld, kdiff3, hatta sdiff'i severim; ancak iki dosyayı yan yana (farklı olması gerekiyordu) (örneğin, i18n çeviri kaynak paketlerinde - özellik eşleşiyor, değer yok; eksik özellikler arıyor) görüntülemek istiyorsam, eşleştirme çizgisini denemeye çalışırsam Satırlar ve farklı olan satırlar aslında negatif.
michael

@michael_n Bunun neden olumsuz olacağını anlamada kayboldum. Belki de noktayı özlüyorum, ama kullanırsanız meldfark ettiğiniz gibi, satırları açıkladığınız durumda açık mavi renkle vurgulandığını ve koyu mavi renkteki belirli ek karakterlerin anında ortaya çıktığını fark etmelisiniz. . Yoksa bir şey mi kaçırıyorum?
kos

Kesinlikle haklısın, açıklığa kavuşturmam gerekirdi; Sorun, bu araçlar için bir yapılandırma seçeneği yok olmasıdır bekliyoruz ve belirli farklılıklar izin gerektiğini olmalı (afaik). Bazı durumlarda, dosyanın tamamını sıraya koymaktan ziyade bile farklı buluyorlar. Örneğin, kullanışlı bir seçenek (benim örneğimde: msg.text = "Hello" vs msg.text = "Bonjour"), iki dosyanın bir bölümünü "first N chars" veya regexp: "^. * = "
michael

Aslında sdiff'in regexp ile görmezden gelme seçeneği olduğunu düşünüyorum (ama ben olumlu değilim). Yine de, sadece Fransızca ve İngilizce'den serbest biçimli bir metinse, hiçbir şeyi vurgulamaya gerek yoktur ve satırları eşleştirme girişimi - dediğim gibi - olumsuz olabilir. Bazen dosyaları yan yana görmek istiyoruz (ve anladığım gibi asıl sorunun özü budur).
michael

@michael_n Aslında dil karşılaştırma meselesini yeni farkettim, bir sebepten ötürü başlangıçta daha genel amaçlı bir metin karşılaştırma aracına ihtiyaçları olduğunu düşündüm. Muhtemelen haklısın, bunu silmeliyim, bununla birlikte, bunun genellikle arama motorlarından çok fazla ziyaret çektiği gibi genel olarak adlandırılan soruları da düşünüyorum (örneğin, eğer Google "Ubuntu'yu yan yana koyarsam" bu şu anda üçüncü sonuç). Belki de bu durumda kalırsa daha iyidir. Ne de olsa acıtmamalı. Kesin cevap (cevaplar) zaten yığının tepesini oluşturur.
kos


0

Eğer çevirilere bakıyorsanız Poedit'i yararlı bulabilirsiniz . İki metni sizin için yan yana görüntüleyebilir ve çevirilerle çalışmak üzere yapılmıştır.


1
sadece çözüme bağlantılar yapıştırmak yerine, 'nasıl' olduğunu da açıklamalısınız
Edward Torvalds

Bu, gettext ile çalışmakla sınırlı gibi görünüyor.
carnendil
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.