क्लोजर-जैक-इन वास्तव में क्या करता है? और कीचड़ के साथ सेटिंग्स को कॉन्फ़िगर कैसे करें? मुझे .emacs में जोड़ने की क्या ज़रूरत है?क्लोजर-जैक-इन वास्तव में क्या करता है? और कीचड़ के साथ सेटिंग्स को कॉन्फ़िगर कैसे करें?
उत्तर
clojure-jack-in
आपके वर्तमान प्रोजेक्ट के लिए एक एसएलएमई सत्र शुरू करता है।
यह एक यादृच्छिक पोर्ट नंबर उत्पन्न करके lein jack-in
चला रहा है, जो उप-प्रक्रिया में इस पोर्ट नंबर के साथ चल रहा है, स्वैंक सर्वर शुरू करने की प्रतीक्षा कर रहा है और फिर पोर्ट नंबर के साथ slime-connect
पर कॉल कर रहा है।
lein jack-in
के बाद से स्वांक सर्वर शुरू करने के लिए प्रयोग किया जाता है, तो आप स्पष्ट रूप से अपनी परियोजना में Leiningen उपयोग करने की आवश्यकता है और आप स्वांक-clojure प्लगइन Leiningen स्थापित के लिए, या तो एक स्टैंड-अलोन प्लगइन के रूप में यह स्थापित करके की आवश्यकता है (lein plugin install swank-clojure 1.3.2
) , या इसे अपने project.clj
में एक देव-निर्भरता के रूप में शामिल करके।
Emacs पक्ष पर, आपको से clojure-mode
इंस्टॉल करने की आवश्यकता है। आपको अपने .emacs
में कुछ भी जोड़ने की आवश्यकता नहीं है।
lein jack-in
(M-x clojure-jack-in
के माध्यम से) बनाम lein swank
चल रहा का उपयोग कर के बीच अंतर clojure-jack-in
भी स्वांक-clojure Leiningen प्लगइन के बजाय कीचड़ संस्करण Emacs में स्थापित के साथ आता है कि कीचड़ के एक संस्करण को लोड करता है। मुझे यकीन नहीं है कि इसके पीछे क्या तर्क है, संभवतः यह सुनिश्चित करने के लिए कि एसएलईएमई संस्करण स्विंक सर्वर के साथ संगत है।
दूसरा कारण यह है कि एसआईएलएमई का संस्करण स्वैंक-क्लोजर के साथ प्रयोग किया जाता है जो अधिकांश सामान्य लिस्प कार्यान्वयन के साथ ठीक से काम नहीं करता है और इसकी कुछ विशेषताओं को हटा दिया जाता है। –
क्या आप जानते हैं कि इन सुविधाओं को क्यों हटाया गया था? मैंने कभी भी मानक एसएलईएमई संस्करण और स्वैंक-क्लोजर के साथ समस्याओं में भाग नहीं लिया, अब मैं ज्यादातर सुविधा के लिए क्लोजर-जैक का उपयोग करता हूं। –
मुझे याद है कि कुछ क्रॉस रेफरेंसिंग कमांड गायब थे, स्लिम-फैंसी से सबकुछ भी नहीं था। कुछ बिंदु पर अस्पष्ट-समापन गायब था, लेकिन मुझे लगता है कि यह तब से जोड़ा गया है। थोड़ी देर में क्लोजर का उपयोग नहीं किया है और मेरी यादें थोड़ा अस्पष्ट हैं। स्लिम का परम हाइलाइट भी लागू नहीं किया गया है। –