2011-05-13 11 views
9

मुझे क्लोजर और कॉमन लिस्प दोनों के साथ काम करने के लिए एसएलईएमई स्थापित करने में परेशानी हो रही है। अधिकांश क्लोजर देवताओं ने ईएलपीए के माध्यम से उपलब्ध एसएलआईएमई को उपलब्ध कराया है जो क्लोजर संगतता के लिए जमे हुए है। हालांकि, मैं बहुत सारे सामान्य लिस्प हैकिंग भी करता हूं और मैं आम तौर पर एसएलईएमई सीवीएस संस्करण (क्विकलिस्प के माध्यम से प्राप्त) का उपयोग करता हूं।सामान्य लिस्प और क्लोजर विकास दोनों के लिए एसएलईएमई सेटअप

वहाँ Clojure के लिए स्वांक कार्यान्वयन के साथ कुछ प्रसिद्ध समस्याएं हैं - आदि यह autodoc साथ काम नहीं करता है (यदि यह कीचड़ फ्रीज़ सक्षम है), यह फजी पूरा होने की तरह कुछ बातें समर्थन नहीं करता, यह question की चर्चा वही विषय है जो उत्तर दिया गया है कि मेरे लिए कोई जाना नहीं है।

(add-hook 'slime-connected-hook 
      (lambda() 
      (if (string= (slime-lisp-implementation-type) "Clojure") 
       (setq slime-use-autodoc-mode nil) 
       (setq slime-use-autodoc-mode t)) 
      )) 

(add-hook 'slime-mode-hook 
      (lambda() 
      (if (eq major-mode 'clojure-mode) 
        (slime-autodoc-mode 0) 
       (slime-autodoc-mode 1)))) 

(add-hook 'slime-repl-mode-hook 
      (lambda() 
      (if (string= (slime-lisp-implementation-type) "Clojure") 
       (progn (setq slime-use-autodoc-mode nil) 
         (slime-autodoc-mode 0)) 
       (progn (setq slime-use-autodoc-mode t) 
        (slime-autodoc-mode 1))))) 

समाधान कागज पर बहुत अच्छा लगता है, लेकिन मेरे लिए कीचड़-तुतलाना-कार्यान्वयन प्रकार हमेशा नहीं के बराबर है। (कीचड़-लिस्प-कार्यान्वयन-प्रकार के लिए समान: स्थानीय कनेक्शन के साथ connlocal)।

मुझे मूल रूप से क्या चाहिए, यह जानने का एक तरीका है कि मैं क्लोजर के swank के साथ समस्याग्रस्त सेटिंग्स को संशोधित करने में सक्षम होने के लिए SLIME चला रहा हूं।

+0

क्या ओएस आप पर कर रहे हैं? मैं मैक ओएस एक्स में इस काम के (बहुत हालांकि यह शायद लिनक्स में काम करता है) मिल गया है और यह के बारे में ब्लॉग यहाँ http://spacemanaki.posterous.com/setting-up-emacs-for-lisp-hacking-on-os-x- पीटी -0 और इस प्रश्न का उत्तर दिया http://stackoverflow.com/questions/4551283/what-is-wrong-with-my-emacs-slime-setup-compile-and-load-eval-not-working/4555421#4555421 काम करने के लिए एकमात्र तरीका यह था कि नवीनतम सीवीएस एसएलईएमई और ईएलपीए स्लीम दोनों होना चाहिए और इस पर निर्भर करता है कि मैं आम लिस्प या क्लोजर पर काम कर रहा था या नहीं। – spacemanaki

+1

मैं लिनक्स का उपयोग कर रहा हूं। मैं आपके द्वारा प्रस्तावित समाधान के बारे में जानता हूं, लेकिन मुझे यह पसंद नहीं है - मैं बस हर समय सीवीएस एसएलईएमई का उपयोग करना चाहता हूं। मेरे पास एक साधारण कार्य हो सकता है जो क्लोजर कनेक्शन बनाने से पहले मुझे जो चाहिए, उसे टॉगल कर सकता है, लेकिन मैं इस तरह की सेटिंग्स को स्वचालित रूप से कीचड़ के स्टार्टअप में हुक करने का तरीका ढूंढना चाहता हूं। –

+0

मुझे यह पसंद नहीं है, लेकिन यह काम करता है। मैं इस थ्रेड पर नजर रखूंगा कि यह देखने के लिए कि क्या कोई बेहतर कुछ सुझाता है, क्योंकि अब मैंने इस विशेष याक को शेविंग छोड़ दिया है। – spacemanaki

उत्तर

4

ऐसा लगता है कि इस समस्या का समाधान अभी बनाया गया था। इसे jack-in कहा जाता है। मूल रूप से आप सिर्फ तीन काम करने होंगे:

  • lein प्लगइन स्थापित Git या जैम के माध्यम से

    1. clojure मोड स्थापित स्वांक-clojure 1.3.1
    2. आह्वान एमएक्स clojure-जैक में एक परियोजना से

    यह स्वचालित रूप से समर्थित SLIME बूटस्ट्रैप करेगा। अब आपको इसे ईएलपीए के माध्यम से स्थापित करने की आवश्यकता नहीं है। मैंने अपने कॉमन लिस्प इनिट को एक इंटरैक्टिव फ़ंक्शन में लपेट लिया है जिसे मैं कॉल कर सकता हूं, जब मुझे इसकी ज़रूरत होती है, क्योंकि क्लोजर एसएलईएमई लोड करना स्वाभाविक रूप से कुछ सेटिंग्स को गड़बड़ कर देता है। यह कीचड़ में नदी के ऊपर Clojure समर्थन के रूप में के रूप में आदर्श एक समाधान नहीं है, लेकिन यह सबसे विकल्प की तुलना में बेहतर है ...

    अद्यतन:

    कीचड़ नहीं रह गया है Clojure विकास के लिए आवश्यक है। मैं आपको इसके बजाय CIDER का उपयोग करने की सलाह देता हूं।

  • 0

    यह Emacs में क्लोजर के लिए एसएलईएमई स्थापित करने के लिए एक चरण-दर-चरण मार्गदर्शिका है (http://technomancy.us/126 और अन्य स्रोतों से एकत्रित)। यह आपके मौजूदा CommonLisp या योजना सेटअप के साथ हस्तक्षेप नहीं करता है:

    http://languageagnostic.blogspot.com/2011/05/clojure-in-emacs.html

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