विंडोज सिस्टम पर दो टेक्स्ट फाइल की तुलना करना


11

के बाद से ediff-filesऔर ediff-buffersमें परिणाम apply: Searching for program: no such file or directory, diffखिड़कियां मशीनों पर त्रुटि।

विंडोज़ सिस्टम पर Emacs का उपयोग करके दो फ़ाइलों की तुलना कैसे करें?


1
GetGnuWin32 को स्थापित करने से, आपके पास बहुत से ग्नू सॉफ़्टवेयर तक पहुंच है (अंतर लेकिन alos wget, sed…)। यदि आप केवल अंतर की परवाह करते हैं, तो आप gnu.org/software/diffutils
fredtantini

त्रुटि संदेश आपको बताता है कि क्या गलत है: आपने diffस्थापित नहीं किया है। जाओ Cygwin और फिर कोशिश करें।
इसका अजादार

@itsjeyd Cygwin पहले से सिस्टम पर स्थापित है
Empty_Mind

@fredtantini GetGnuWin32 को स्थापित करने के बाद मुझे एक ही त्रुटि
मिलती है

2
क्या यह आपके रास्ते में है? मुझे लगता है कि निर्देशिका कम से कम exec-pathचर पर होनी चाहिए ।
फर्दांतिनी

जवाबों:


8

जैसा कि @nanny ने टिप्पणियों में कहा, समाधान में डिफरेंटिल के साथ Cygwin स्थापित है। यहां है कि इसे कैसे करना है:

  1. Cygwin को इसके होमपेज से डाउनलोड करें ।
  2. diffutils: A GNU collection of diff utilitiesपैकेज के साथ Cygwin स्थापित करें । यह पैकेज UtilsCygwin स्थापना के कुछ चरणों में सेक्शन में पाया जा सकता है । डिफ्यूलेट्स के साथ साइगविन स्थापित करना
  3. पथ विंडोज सिस्टम चर में Cygwin निर्देशिकाओं को जोड़ें। यह किया जा सकता है:
    क) आदेश रखने के लिए अपने स्वयं के CYGWIN चर को जोड़ना। CYGWIN सिस्टम वैरिएबल बनाना;
    b) और आपके द्वारा अभी बनाया गया वैरिएबल PATH वैरिएबल में जोड़ा जा रहा है।पथ प्रणाली चर में CYGWIN चर जोड़ने

इसके बाद आप कॉल करने में सक्षम हैं ediff-buffers, ediff-filesऔर अन्य सफलतापूर्वक। जो कुछ इस तरह दिखता है:चल रहा है

का आनंद लें!


3

यदि आपके पास स्थापित विंडोज़ के लिए गिट है, तो यह जोड़ने के लिए पर्याप्त है

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

आपके PATH के लिए, क्योंकि यह पहले से ही एक अलग निष्पादन योग्य है और इसे उस फ़ोल्डर में स्थापित करता है।


2

यह लोगों को कुछ समय बचा सकता है इसलिए मैं यहां जवाब दूंगा। यदि आप binअपने पथ (या अन्य उत्तरों में सुझाए गए किसी भी अन्य) में साइबरविन निर्देशिका को जोड़ना नहीं चाहते हैं, तो आप चर को सेट करके प्रोग्राम एडिफ उपयोगों का पथ सेट कर सकते हैं ediff-diff-program। उदाहरण के लिए, यदि आप C:\cygwin\binसाइबरविन का उपयोग कर रहे हैं (या आपके मामले में वास्तविक पथ जो भी है) उसे सेट कर सकते हैं । मुझे यह पता लगाने में कुछ समय लगा कि किस चर को सेट करना है। कुछ है कि काम नहीं कर रहे थे: ediff-custom-diff-programऔर diff-command

उदाहरण के लिए:

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

क्या यह।


IIRC, आप शेल के बाहर cygwin binaries को नहीं बुला सकते हैं, क्योंकि वे कुछ पुस्तकालयों को लोड करने में विफल रहते हैं। मुझे लगता है कि यह तभी काम करेगा जब Emacs को Cygwin से चलाया जाएगा, जिसके पास PATHवेरिएबल सेट सही ढंग से होना चाहिए । यदि मैं गलत हूं तो मुझे सही करों।
DoMiNeLa10

1
@ DoMiNeLa10 मैंने इसे सिग्विन के बारे में जाने बिना टास्कबार से ईमैक्स शुरू करके इमैक 26.1 के साथ विंडोज 10 मशीन पर परीक्षण किया ... ठीक काम करता है। इसके अतिरिक्त, समाधान को पथ में जोड़ने से वही समस्या होगी जिसका आप वर्णन करते हैं कि क्या यह वास्तव में एक मुद्दा था।
1919

1
मुझे खेद है, मेरी टिप्पणी का अंतिम भाग गलत है। इसे पथ पर जोड़ने से आपके द्वारा सुझाए गए समान मुद्दे नहीं होंगे, क्योंकि यह पुस्तकालयों को खोजने में सक्षम होगा। उस ने कहा, मैंने उत्तर में दृष्टिकोण का परीक्षण किया और यह अच्छी तरह से काम करता है।
sturgman

0

यदि आपको एक अंतर उत्पन्न करने की आवश्यकता नहीं है, लेकिन केवल फाइलों के बीच अंतर खोजना चाहते हैं, तो इसका एक तरीका यह है कि M-x compare-windowsइसके बजाय इसका उपयोग किया जाए।

दो फ़ाइलों को ऐसे खोलें कि आप दोनों को एक ही समय में देखते हैं, दोनों बफ़र्स में शुरुआत की ओर बढ़ते हैं, और चलाते हैं M-x compare-windows। यह पहली जगह पर ले जाएगा जहां फाइलें अलग हैं। यह बिना किसी बाहरी निष्पादन के काम करना चाहिए।


1
यह दोनों फाइलों में पहले अलग चरित्र से पहले बिंदु को रोकता है।
Empty_Mind

0

यदि आप कमांड लाइन इंस्टॉलर https://scoop.sh/ का उपयोग करते हैं, तो आप अपने प्रॉम्प्ट में diffटाइप करके प्राप्त कर सकते हैं scoop install diffutils

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.