2010-01-15 9 views
40

विंडोज पर Emacs के साथ सिगविन को एकीकृत करने के कई तरीके हैं। EmacsWiki कुछ विचार दिखाता है। यहां दिए गए विकल्प यहां दिए गए हैं:Emacs और Cygwin को सर्वश्रेष्ठ तरीके से एकीकृत कैसे करें?

  1. साइगविन के साथ आने वाले Emacs का उपयोग करें। (फिर यदि आप इसे चाहते हैं तो cmd.exe पर जाने का कोई तरीका खोजें।)
  2. "कभी-कभी" खोल के रूप में एनटीईएमएक्स और सिगविन का उपयोग करें। (सिगविन लॉन्च करने के लिए एक विशेष कमांड)
  3. "हमेशा" खोल के रूप में एनटीईएमएक्स और सिगविन का उपयोग करें। (एम-एक्स खोल ने सिगविन लॉन्च किया)

"क्यों" के रूप में कुछ स्पष्टता देने के लिए। यहां कुछ उदाहरण दिए गए हैं जहां मेरी इच्छा है कि मेरे पास साइक्सविन इमाक्स के साथ था:

  1. एम-एक्स जोइस एनटीईएमएक्स पर काम नहीं करता है।
  2. Wanderlust जैसे पैकेज एक मेकफ़ाइल शामिल हैं जो विंडोज के अनुकूल नहीं है।
  3. कभी-कभी मुझे किसी चीज़ के लिए एक बैश खोल की आवश्यकता होती है।

तो Emacs/Cygwin का कौन सा विकल्प दूसरों के लिए अच्छा काम करता है? इसके अलावा, क्या किसी ने सफलतापूर्वक एमएसवाईएस एकीकरण की कोशिश की है?

उत्तर

18

साइगविन में Emacs का उपयोग करें। XEmacs नहीं ..Emacs।मैं सिर्फ Cygwin से सब कुछ स्थापित करने और Emacs चलाने के लिए निम्न लिखें:

 
XWin -multiwindow 
export DISPLAY=:0.0 
emacs& 

यह भी तो की तरह अपने सी ड्राइव के लिए एक लिंक (या किसी अन्य ड्राइव) बनाने के लिए मदद कर सकते हैं:

ln -s /cygdrive/c /c

मैं इसे कई महीनों से उपयोग कर रहा हूं और यह हमेशा अच्छी तरह से काम करता है। मैं लगातार किसी भी मुद्दे के बिना TRAMP और subversion जैसे उन्नत सुविधाओं का उपयोग करता हूं। सीडेट जैसे सभी उन्नत पैकेज बस काम करते हैं।

यदि आपने ध्यान नहीं दिया था, तो मैं मूल पोस्टर हूं। मेरे सभी शोध और प्रयासों के बाद, यह एक काम करता था और मैं बहुत ही तैयार हूं। अच्छा काम सिगविन!

इसके अलावा, मैं Emacs के भीतर खोल का उपयोग न करने की सलाह देता हूं। top जैसी सुविधाएं उपयोग करने लगती हैं। इसके बजाय, मिनीटीटीई और स्क्रीन का उपयोग करें। सिग्विन आपको सीधे मिनीटीटी में एसएसएच देता है (आपको पुटी की आवश्यकता नहीं है)। सबसे अच्छा हिस्सा यह है कि मेरे कई लिनक्स ज्ञान विंडोज़ में निर्बाध रूप से काम करते हैं।

+0

हू। जब मैं इसे आज़माता हूं, तो मुझे '$ -bash: XWin: कमांड नहीं मिला ' bash: -bash :: कमांड नहीं मिला ' – Vincent

+0

@ विन्सेंट: आपको X11 सर्वर स्थापित करना होगा। सिग्विन के उत्कृष्ट ** एपीटी-साइग ** साथी का उपयोग करना ([https://github.com/transcode-open/apt-cyg#quick-start ](https://github.com/transcode-open/apt- cyg # quick-start)), यहां मुझे इंस्टॉल करने की आवश्यकता है: 'apt-cyg xorg-server xinit emacs-X11' स्थापित करें। उसके बाद, उपयोगकर्ता 1 के निर्देशों को काम करना चाहिए। एक्स के साथ एक्स सेट अप करने के बारे में यहां अधिक जानकारी उपलब्ध है: [http://x.cygwin.com/docs/ug/setup.html#setup-cygwin-x-installing](http://x.cygwin.com /docs/ug/setup.html#setup-cygwin-x-installing) – Apteryx

1

मुझे संस्करण पसंद है जो आपको सिगविन सेटअप प्रोग्राम से मिलता है। बॉक्स से बाहर काम करता है, Alt कुंजी मानचित्र मेटा बस ठीक है, और जब भी आपको इसकी आवश्यकता होती है तो बैश खोल बफर वहां होता है।

1

तीसरा विकल्प। मैं एनटीईएमएक्स + EmacsW32 + Cygwin का उपयोग कर रहा हूँ। इस तरह मेरे पास यूनिक्स यूटिलिटीज और बैश खोल के साथ मूल विंडोज एप्लिकेशन है। मेकफ़ाइल काम करते हैं, मैंने कभी भी M-x whois का उपयोग नहीं किया है। मैं इस सेटअप के किसी भी तत्काल दोष के बारे में नहीं सोच सकता। (यू) rxvt, mintty, टर्म:

(setq cygwin-root "c:/cygwin/") 
(setq private-bin (concat home-dir "/usr/bin")) 
(setq exec-path (cons private-bin exec-path)) 
(setenv "PATH" (concat private-bin ";" (getenv "PATH"))) 
; Add Cygwin Emacs stuff 
(add-to-load-path "/usr/share/emacs/site-lisp") 
; Add Cygwin Info pages 
(add-to-list 'Info-default-directory-list 
      (concat cygwin-root "usr/share/info/")) 

(setq shell-file-name "bash") 
(setenv "SHELL" shell-file-name) 
(setq explicit-shell-file-name shell-file-name) 

(setq w32shell-cygwin-bin "c:\\cygwin\\bin") 
(require 'w32shell) 
(w32shell-add-emacs) 
(w32shell-set-shell "cygwin") 
8

एक चौथा विकल्प Cygwin वैकल्पिक टर्मिनलों में से एक में Emacs चलाने के लिए है:

यहाँ मेरी स्थापना के दिलचस्प बिट्स, मूल रूप से बहुत http://www.emacswiki.org/emacs/NTEmacsWithCygwin के समान हैं। ये सभी कंसोल की तुलना में बेहतर टर्मिनल इम्यूलेशन प्रदान करते हैं, जिसका अर्थ है कि एक बेहतर सुधार emacs अनुभव।

+0

आप Cygwin Emacs मानते हैं यहाँ? –

+0

हाँ, मुझे इसका उल्लेख करना चाहिए था। NTemacs शायद उन टर्मिनलों में से किसी एक में काम नहीं करेगा क्योंकि संभवतः इसे कंसोल की आवश्यकता है। –

+1

दिलचस्प विचार। क्या आप प्रदर्शन में बहुत अधिक अंतराल देखते हैं (यह देखकर कि यह एनटीईएमएक्स की तरह मूल नहीं है)? साथ ही, आप इन टर्मिनल में से किसी एक को कैसे लॉन्च करते हैं और आपको सबसे अच्छा कौन सा पसंद है? उत्तर के लिए धन्यवाद। – User1

6

मैं emacs on windows के देशी संस्करण का उपयोग gnu utils के (मूल भी) बंदरगाहों के संयोजन के साथ करता हूं, जो सिगविन के मुकाबले बहुत तेज़ हैं, हालांकि कम तेज़ हैं।

तब मैं बस बैश खोल और गायब चीजों के लिए एक सिग्विन विंडो का उपयोग करता हूं।

3

मैंने रूट पर साइगविन स्थापित किया। यह स्पष्ट रूप से आपको इसके खिलाफ चेतावनी देता है, लेकिन मुझे कोई बुरा प्रभाव नहीं पड़ा। (मैंने स्टीव येगगे से सलाह का टुकड़ा पाया)।

मैंने cygwin-mount भी स्थापित किया, जो एक गुच्छा में मदद करता है। इसके अलावा, मुझे ispell से aspell में स्विच करना पड़ा। अंत में, .emacs फेरबदल का एक छोटा सा है, और मैं अच्छा जाना था:

;;;;;;;;;;;;;;;;;;;;;; 
;;CygForTheWin 
;;*cygwin 
(when (equal system-type 'windows-nt) 
(message "Setting up Cygwin...") 
(let* ((cygwin-root "c:") 
     (cygwin-bin (concat cygwin-root "/bin")) 
     (gambit-bin "/usr/local/Gambit-C/4.0b22/bin/") 
     (snow-bin "/usr/local/snow/current/bin") 
     (mysql-bin "/wamp/bin/mysql/mysql5.0.51a/bin/")) 
    (setenv "PATH" (concat cygwin-bin ";" ; 
          snow-bin ";" 
          gambit-bin ";" 
          mysql-bin ";" 
          "c:/usr/local/jdk1.60_03/bin/" 
          ".;") 
      (getenv "PATH")) 
    (setq exec-path (cons cygwin-bin exec-path))) 

(require 'cygwin-mount) 
(cygwin-mount-activate) 

(setq shell-file-name "bash") 
(setq explicit-shell-file-name "bash") 

(defun jonnay-cygwin-shell() 
    "Wrapper around cygwin-shell so that it doesn't throw an error" 
    (interactive) 
    (condition-case e 
    (cygwin-shell) 
    (message "There was an error trying to launch the shell: %s" e))) 

(message "Setting up Cygwin...Done") 


;; found from the manual, check, use and make go? 
(defun my-shell-setup() 
    "For Cygwin bash under Emacs 20" 
    (setq comint-scroll-show-maximum-output 'this) 
    (setq comint-completion-addsuffix t) 
    (setq comint-eol-on-send t) 
    (setq w32-quote-process-args ?\") 
    (make-variable-buffer-local 'comint-completion-addsuffix)) 

(setq shell-mode-hook 'my-shell-setup) 
(add-hook 'emacs-startup-hook 'jonnay-cygwin-shell) 
) 
1

बस @justinhj की तरह, मैं Emacs के देशी संस्करण खिड़कियों पर संयोजन के रूप में (यह भी देशी) जीएनयू utils के बंदरगाहों के साथ प्रयोग (उदाहरण के लिए 'तार' के लिए binutils, आदि)।

और मैं हमेशा इमैक के भीतर या इमाक्स के स्वतंत्र रूप से सिग्विन के रूप में सिग्विन का उपयोग करता हूं। इस तरह, मैं & को अपने काम के माहौल को महसूस करता हूं जब मैं & को विंडोज से/लिनक्स/एईक्स/सोलारिस से वापस स्विच करता हूं।

दुर्भाग्यवश, हालांकि, जब मैंने अपने इमाक्स को 21.2 से 23.2 तक अपग्रेड किया, तो इमाक्स ने डिफ़ॉल्ट रूप से '/ साइगविन/सी' को पहचानने की क्षमता खो दी। मुझे अब यह देखने के लिए शोध करना है कि यह अब क्यों काम नहीं कर रहा है और मैं इसे ठीक करने के लिए क्या कर सकता हूं। मुझे अभी निम्न जानकारी मिली है और मैं यह देखने के लिए जांच करूँगा कि यह सहायक है या नहीं। ऐसा नहीं है कि अब कि मुझे लगता है कि डिफ़ॉल्ट रूप से हमेशा वहाँ हुआ करता था कुछ के लिए एक बाहरी पैकेज की जरूरत है अजीब लगता है:

मैं पसंद करते हैं, हालांकि, अतिरिक्त के उपयोग को कम करने संकुल। इसलिए, मैंने अभी अपने "नए" Emacs + Cygwin के व्यवहार की जांच की है और ऐसा लगता है कि मैं केवल '/' टाइप करके सी: ड्राइव तक पहुंच सकता हूं।

यह ठंडा है -/cygdrive/c के बजाय केवल एक वर्ण (स्लैश)। हालांकि, Emacs के भीतर खोल '/ cygdrive/c' के साथ संकेत करता है, कुछ हद तक भ्रमित अंतर।

0

मैंने तीन विकल्पों की जांच की, सभी Emacs के खिड़की वाले (लेकिन X11) संस्करणों के साथ। (टर्मिनल भी मेरे लिए कट्टर है।) यहाँ जाता है:

  1. XEmacs कि Windows

के लिए Cygwin

  • EmacsW32
  • स्टैंडर्ड Emacs के साथ आता है Cygwin लोगों को आप चलाने के लिए चाहते हैं उनके Emacs/XEmacs। http://cygwin.com/faq/faq-nochunks.html#faq.using.ntemacs में, वे लिखते हैं "ध्यान दें कि यह सब` 'केवल काम करता है' 'यदि आप सिग्विन सेटअप से Emacs या XEmacs के सिग्विन पोर्ट का उपयोग करते हैं "।

    xemacs के अलावा xemacs-sumo पैकेज को स्थापित करना सुनिश्चित करें; अन्यथा एम-एक्स खोल काम नहीं करेगा। आप के रूप में

    DISPLAY= xemacs & 
    

    कमियां X11 का उपयोग किए बिना xemacs शुरू कर सकते हैं: 1) लड़का, यह एक वर्ष Emacs है। मैं वास्तव में इस पर सैनिक नहीं बनना चाहता था जब हर कोई Emacs 23 का उपयोग कर रहा है। 2) मुझे यह मुश्किल से परेशान पाया गया कि इंस्टॉल को X11 libs का पूरा समूह चाहिए, भले ही आप X11 नहीं चला रहे हों। 3) बॉक्स से बाहर कोई कुआ-मोड नहीं।

    EmacsW32 (http://ourcomments.org/Emacs/EmacsW32.html) में एक-क्लिक इंस्टॉलर, एक एम-एक्स साइगविन-खोल कमांड, और सीयूए मोड है। लेकिन सिग्विन खोल में टैब पूर्णता विंडोज पथ का उपयोग करती है, जिसने मुझे पागल कर दिया। डब्ल्यू 32 पोर्ट 2008 से सक्रिय रूप से सुधार नहीं प्रतीत होता है, लेकिन वे अधिक हालिया Emacs संस्करणों के साथ इंस्टॉलर प्रदान करते हैं।

    विंडोज के लिए मानक Emacs सबसे अच्छा शर्त प्रतीत होता है। http://ftp.gnu.org/pub/gnu/emacs/windows/ से डाउनलोड करें, अनजिप करें, और सिग्विन के अंदर से लॉन्च करें। फिर यह घर निर्देशिका आदि उठाता है। http://cygwin.com/faq/faq-nochunks.html#faq.using.ntemacs से ~/.emacs में मम्बो-जंबो पेस्ट करें। Emacs को पुनरारंभ करें और एम-एक्स खोल चलाएं। अपेक्षित सभी काम करता है।

  • +0

    मैंने साइगविन के साथ XEmacs की कोशिश नहीं की है, लेकिन Emacs सिगविन में संस्करण वर्तमान में 23 पर है। – User1

    0

    एफडब्ल्यूआईडब्ल्यू, मैं सामान्य जीएनयू Emacs विंडोज रिलीज का उपयोग करता हूं, और मैं सिगविन का उपयोग करता हूं। मुझे कभी भी कोई समस्या नहीं हुई है, लेकिन मैं इमाक्स के बाहर सिगविन के साथ बहुत कुछ नहीं करता हूं। ओह, और मैं सिगविन का एक पुराना संस्करण (Emacs के सभी संस्करणों के साथ) का उपयोग कर रहा हूँ।

    सेटअप के लिए, मैं इन दो फ़ाइलें लोड, क्रम में:

    9

    सबसे अच्छा समाधान cygwin Emacs-W32 होना चाहिए। यह Win32 देशी gui का उपयोग कर, और cygswin POSIX प्रणाली का उपयोग कर। इसका मतलब है कि आपके पास एक विंडोज मूल निवासी प्रोग्राम है और सभी सिग्विन पथ, खोल काम कर रहे हैं।

    स्थापना बहुत आसान है: setup.exe -> emacs-w32। अब संस्करण संख्या है: 24.2.93.1

    तो अच्छा। स्रोत से

    +0

    इस तथ्य को स्वीकार करना है कि मैं इसे विंडोज – zinking

    +1

    के तहत उपयोग कर रहा हूं यह एक अच्छा समाधान है, लेकिन चेतावनी हैं: 1) डिफ़ॉल्ट रूप से emacs-w32 सीएलआई के बजाय जीयूआई से शुरू होने पर .exe एक बेकार खोल विंडो खोलता है। इसे "सी: \ cygwin \ bin \ run.exe emacs-w32" के आधार पर एक स्क्रिप्ट बनाकर तय किया जा सकता है। एक और (अधिक परेशान) चेतावनी बनी रहती है: इसे एमाक्स में खोलने के लिए फ़ाइल पर राइट-क्लिक करना असंभव है (या कुछ फ़ाइलों को खोलने के लिए डिफ़ॉल्ट अनुप्रयोग के रूप में सहयोगी emacs-w32): emacs-w32 को पास की गई फ़ाइल का पथ उपसर्ग है "/ cygdrive/c/windows/system32 /", और यह खोलने में विफल रहता है :( – Apteryx

    +0

    मैंने एक रन स्क्रिप्ट का एक उदाहरण जोड़ा है जिसका उपयोग सिगविन के emacs-w32 को Windows पर किसी फ़ाइल प्रकार से जोड़ने के लिए किया जा सकता है; http: //emacs.stackexchange.com/a/24390/11807 – Apteryx

    0

    Emacs बिल्ड:

    - Download नवीनतम स्थिर रिलीज (24.5 इस लेखन के रूप में)।

    $ ./autogen.sh 
    $ ./configure --with-w32 
    $ make 
    $ make install 
    

    कॉपी emacs.exe, हाथ से, "Emacs फ़ोल्डर" से/src को cygwin /:

    Emacs फ़ोल्डर में क्रम में

    -Run इन चरणों का

    -Unzip और सीडी बिन

    -Run Emacs:

    $ emacs&

    संबंधित मुद्दे