سؤال

MX GREP ، MX LGREP ، MX RGREP لا تعمل في emacsw32 بالنسبة لي.

أفعل MX LGREP وتقول إن GREP ليس أمرًا:

grep -i -n "hello" * NUL
'grep' is not recognized as an internal or external command,
operable program or batch file.

Grep finished with no matches found at Sun Jan 31 05:59:06

أيضا ما هذا شيء نول؟ تقول الصفحة الرئيسية EMACSW32 إنها تشحن مع مرافق GNUWIN32 ، لكن يبدو أن العمل لتكوينه لاستخدام GNUWIN32 GREP يترك للمستخدمين بالفعل.

كيف يمكنني تكوينه لاستخدام إما GNUWIN32 GREP أو cygwin grep؟ كلاهما بخير؟

هل كانت مفيدة؟

المحلول

هذه المقالة لديه بعض النصائح حول كيفية الحصول على هذا العمل.

لقد حصلت على هذا العمل في اليوم الآخر ، يمكنك تعيين متغير بيئة المسار داخل EMACs ، وإذا كان لديك Cygwin و/أو GNUW32 مثبت فقط اضبط المسار على هؤلاء. هذا مقتطف من. EMACs ينطبق على Windows فقط. لقد قمت بتعيين المتغيرات (Cygwin-Bin ، Gnu-Bin) على المسار الذي يتم فيه تثبيت البرامج. ثم بناء الطريق لهؤلاء. عيب واحد هو أنه يفجر بقية طريقي. التي لم تكن مشكلة حتى الآن ، لكن إذا كنت أكثر ذكاءً مع Lisp ، فربما كان بإمكاني معرفة شيء ما. على أي حال ، أتمنى أن يساعد هذا.

;;windows only stuff

(when (string-equal system-type "windows-nt")

(progn

(setq cygwin-bin "c:\\apps\\cygwin\\bin")

(setq gnu-bin "C:\\apps\\GnuWin32\\gnuwin32\\bin")

(setenv "PATH"

(concat cygwin-bin ";" gnu-bin ";"))

(setq exec-path

'(cygwin-bin gnu-bin)))) 

يجب أن أضيف ، لقد وصلت إلى هذا الحل لأن وضع QNUWIN32 أمام المسار في Windows يبدو أنه اقتراح محفوف بالمخاطر ، فأنت تخاطر بتعبئة البرامج الأخرى على جهازك. لذلك يبدو أن هذا حل وسط جيد.

نصائح أخرى

لا يأتي Windows مع ملف grep فائدة (في الواقع لديها findstr, ، لكنه ليس هو نفسه بالضبط) ، لذلك تحتاج إلى تثبيت شيء مثل سيجوين أو Unix Utils لنظام التشغيل Windows. بعد تثبيت هذه ، تحتاج إلى إضافتها إلى %PATH%, ، بحيث يعرف Windows مكان البحث عنها. يمكنك القيام بذلك إما في سطر الأوامر عن طريق التشغيل cmd.exe وإصدار أمر set PATH=<your_path>;%PATH% أو في بعض الإعدادات أرملة تحصل عليها بالنقر بزر الماوس الأيمن جهاز الكمبيوتر الخاص بي أيقونة (تسمى شيء مثل متغيرات البيئة هنا هي بعض الصور منه).

لاحظ أن Windows لديه أداة تسمى find وهو أيضًا في النظام %PATH%, يمكن أن تجعل أوامر معينة (مثل M-x grep-find) لا تعمل بشكل صحيح ، لذلك من المهم أن تضع Unix-Find أولاً في %PATH%.

أعتقد أن مستخدم EMACSW32 يحتاج أولاً إلى تعيين خيار المستخدم w32shell-shell عبر القائمة Options > Customize EmacsW32, ، والتي تم تعيينها على لا شيء في الأصل ، ويجب على المستخدم تعيينه على CMD أو Cygwin. يعني تعيينه على CMD MX GREP استخدام GNUWIN32 GREP (و cmd.exe كقذيفة) وإذا تم حفظ الإعداد بشكل صحيح ، فسوف يحتوي dotemacs على خطوط مثل ما يلي:

(custom-set-variables
 ...  
 '(w32shell-shell (quote cmd))
 ...)

يجب وضع النموذج المتغير المخصص في أقرب وقت ممكن من بداية dotemacs.

لسبب ما في نظامي ، هذا لا يكفي ، سوف يصر MX GREP على استخدام "grep -n" كقالب له بدلاً من "grep -nh -e" ويؤدي دائمًا إلى إلحاق "nul". في هذه الحالة ، أضف السطر التالي في ملف dotemacs.

(grep-compute-defaults)

إليك إجابة لا معنى لها تعمل:

http://groups.google.com/group/gnu.emacs.help/browse_thread/thread/39cd9d63b07a9988#

يتمتع!

يمكنني استخدام cygwin (نسخة قديمة). بالنسبة لـ emacs ، أستخدم المكتبات cygwin-mount.el و الإعداد cygwin.el, ، محملة بهذا الترتيب. يعمل على ما يرام.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top