Windows sistemindeki iki metin dosyasını karşılaştırma


11

Beri ediff-filesve Windows makinelerinde hata ile ediff-bufferssonuçlanır apply: Searching for program: no such file or directory, diff.

Bir Windows sisteminde Emacs kullanarak iki dosyayı nasıl karşılaştırabilirim?


1
GetGnuWin32'yi yükleyerek, birçok gnu yazılımına erişebilirsiniz (diff ama alos wget, sed…). Sadece farkına
önem veriyorsanız

Hata mesajı neyin yanlış olduğunu söyler: diffYüklemediniz. Git Cygwin'i al ve tekrar dene.
itsjeyd

@itsjeyd Cygwin zaten sistemde kurulu
Empty_Mind

@fredtantini GetGnuWin32 yükledikten sonra aynı hatayı alıyorum
Empty_Mind

2
Yolunda mı? Ben dizin en azından exec-pathdeğişken üzerinde olması gerektiğini düşünüyorum .
fredtantini

Yanıtlar:


8

@Nanny'nin yorumlarda belirttiği gibi, çözüm Cygwin'i diffutils ile kuruyor. İşte nasıl yapılacağı:

  1. Cygwin'i ana sayfasından indirin .
  2. Cygwin'i diffutils: A GNU collection of diff utilitiespakete yükleyin . Bu paket, UtilsCygwin kurulumunun birkaç adımından birinde bulunabilir . ile Cygwin kurulumu
  3. PATH windows sistem değişkenine Cygwin dizinlerini ekleyin. Bu şu şekilde yapılabilir:
    a) siparişi korumak için kendi CYGWIN değişkeninizi ekleyerek. CYGWIN sistem değişkeni yaratmak;
    b) yeni oluşturduğunuz değişkeni sistem PATH değişkenine ekleme.PATH sistem değişkenine CYGWIN değişkeni eklenmesi

Bundan sonra çağrı edebiliyoruz ediff-buffers, ediff-filesve başarıyla diğerleri. Hangi şuna benzer:çalışan ediff

Zevk almak!


3

Yüklü pencereler için git varsa, eklemek için yeterlidir

C:\Program Files\Git\usr\bin\

Zaten bir diff çalıştırılabiliriyle birlikte gönderilir ve bu klasöre yüklenir.


2

Bu insanları biraz zaman kazandırabilir, bu yüzden burada cevap vereceğim. Cygwin bindizinini yolunuza (veya diğer yanıtlarda önerilen diğer dizinlerden herhangi birine) eklemek istemiyorsanız , değişkeni ayarlayarak ediff tarafından kullanılan programın yolunu ayarlayabilirsiniz ediff-diff-program. Örneğin C:\cygwin\bin, cygwin kullanıyorsanız bunu (veya gerçek yolunuz ne olursa olsun) olarak ayarlayabilirsiniz . Hangi değişkenin ayarlanacağını bulmak biraz zaman aldı. ÇALIŞMAYAN bazıları: ediff-custom-diff-programve diff-command.

Örneğin:

(setq ediff-diff-program "c:/CYGWIN64/bin/diff.exe")

yapar.


IIRC, bazı kütüphaneleri yükleyemedikleri için kabuk dışında cygwin ikili dosyalarını çağıramazsınız. Bu sadece Emacs PATHdeğişkenin doğru ayarlanması gereken Cygwin'den çalıştırıldığında işe yarayacağını düşünüyorum . Yanlışsam düzelt.
DoMiNeLa10

1
@ DoMiNeLa10 Ben Cygwin bilmeden görev çubuğundan emacs başlatarak Emacs 26.1 ile bir Windows 10 makinede test ... iyi çalışıyor. Ayrıca, yola ekleyen çözüm, gerçekten bir sorun olup olmadığını açıkladığınız aynı soruna sahip olacaktır.
sturgman

1
Üzgünüm, yorumumun son kısmı yanlış. Bunu yollara eklemek, kitaplıkları bulabileceği için önerdiğiniz sorunla aynı olmaz. Bununla birlikte, cevaptaki yaklaşımı test ettim ve iyi çalışıyor.
sturgman

0

Bir fark üretmeniz gerekmiyorsa, ancak dosyalar arasındaki farkları bulmak istiyorsanız, bunu yapmanın bir yolu kullanmaktır M-x compare-windows.

İki dosyayı da aynı anda görecek şekilde açın, her iki arabellekte de başa gelin ve çalıştırın M-x compare-windows. Noktayı dosyaların farklı olduğu ilk yere taşıyacaktır. Bu, herhangi bir harici yürütülebilir dosya olmadan çalışmalıdır.


1
Bu, her iki dosyadaki ilk farklı karakterden önceki noktayı durdurur.
Empty_Mind

0

Https://scoop.sh/ komut satırı yükleyicisini kullanırsanız, isteminize diffyazarak ulaşabilirsiniz scoop install diffutils.

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.