2009-12-26 8 views
9

मैं क्लोजर-swank और कीचड़ के साथ emacs का उपयोग कर रहा हूँ और अपने विकास पर्यावरण सेट करने की कोशिश कर रहा हूँ। और मैं एक समस्या में भाग गया। जब मैं एक प्रतिलिपि शुरू करता हूं तो मैं एक अज्ञात निर्देशिका में फंस जाता हूं जो मुझे अपना नामस्थान लोड करने से रोकता है। क्योंकि क्लोजर प्रतिलिपि सही फ़ाइल नहीं मिल सकती है।क्लोजर emacs कीचड़ + swank निर्देशिका प्रश्न

क्या कोई जानता है कि वर्तमान निर्देशिका को कैसे बदला जाए?

पीएस: मैंने अभी emacs और कीचड़ का उपयोग करना शुरू कर दिया है, इसलिए मैं एक नोब हूं।

उत्तर

6

आप तो वर्तमान निर्देशिका की कीचड़ की धारणा को बदलना चाहते हैं, ,cd<CR> (<CR> = Enter) दबाएं और पथ में टाइप करें।

हालांकि, यह वास्तव में समस्या का उचित समाधान नहीं है। उचित समाधान में क्लासपाथ स्थापित करना शामिल है ताकि आप कर सकें ('your.namespace' का उपयोग करें। इस उद्देश्य से, मुझे आश्चर्य है अगर this very long answer मैं ठीक से classpath की स्थापना उपयोगी हो सकता है के बारे में एक प्रश्न के प्रदान की ... :-)

संयोग से, मैं कुछ हद तक add-classpath से जुड़े समाधान पर आपत्ति, के रूप में, जो वर्तमान में पदावनत चिह्नित है और पहली जगह पर भरोसा नहीं किया गया था ... हालांकि दूसरी तरफ, यह निश्चित रूप से पूरी तरह से काम कर सकता है और यह केवल एक मामले में जानकार है कि यह एक त्वरित और गंदे क्लासपाथ इंजेक्शन के रूप में काम में आ सकता है नौटंकी।

अब यदि आप एक अच्छा अच्छा एसएलईएमई आधारित विकास वातावरण चाहते हैं, तो मैं आपको फिल हेगेलबर्ग द्वारा एक बहुत अच्छा clojure-project एलिस्प फ़ंक्शन पर इंगित करना चाहता हूं जो सभी प्रासंगिक चर सेट करता है और एक परियोजना की मुख्य निर्देशिका में एसएलईएमई लॉन्च करता है (interactively आपूर्ति की जाएगी)। इसे क्लोजर समूह में पोस्ट किया गया है, वास्तव में उस संदेश की मेल आर्काइव की प्रतिलिपि में here's a link पर पोस्ट किया गया है। ध्यान दें कि वहां एक चीज है जिसमें सुधार की आवश्यकता है - swank-clojure-jar-pathclojure.jar के पूर्ण पथ पर सेट होना चाहिए। अन्यथा यह एक शानदार उपकरण है।

असल में मैंने क्लोजर और इमाक्स का उपयोग करते समय क्लासपाथ के प्रबंधन के बारे में एक प्रश्न के लिए this response में फ़ंक्शन का उल्लेख किया। अन्य उत्तरों भी दिलचस्प हो सकता है।

और अगर आप केवल कर रहे हैं सिर्फ कीचड़ का उपयोग शुरू किया, कीचड़ वीडियो देखने के है, SLIME's homepage जो अब एक लिंक टिप्पणी में Michiel द्वारा पोस्ट की गई के तहत उपलब्ध है से जुड़े हुए हैं। यह एक बहुत अच्छा परिचय है। :-)

+0

मैं क्लोजर-प्रोजेक्ट फ़ंक्शन समाधान का प्रयास करने जा रहा हूं। लेकिन मैं किस फाइल में कोड जोड़ूं? – MrHus

+0

एसएलईएमई होमपेज से वीडियो का लिंक मर चुका है। वीडियो अभी भी यहां पाया जा सकता है: http://www.guba.com/watch/3000054867 –

+0

ओह, मैंने कभी नहीं देखा ... धन्यवाद, Michiel। मैं तदनुसार संपादित करूंगा। @MrHus: आपको इसे कुछ फ़ाइल में जोड़ने की ज़रूरत है, जब आप Emacs शुरू करते हैं, जैसे '~/.emacs' (ऑन * nix)/'_emacs' (विंडोज़ पर; मुझे विश्वास है कि आप इसे अपनी प्रोफ़ाइल की निर्देशिका में डाल दें, उदाहरण के लिए 'सी: \ दस्तावेज़ और सेटिंग्स \ yourusername \ _emacs', लेकिन मुझे पूरी तरह से यकीन है, अगर यह काम नहीं करेगा तो Google के आसपास Google)। बस 'swank-clojure-jar-path' को ठीक करना याद रखें। संयोग से, इस सवाल से पूछकर, आप फिल हेगेलबर्ग के 'इमेक्स-स्टार्टर-किट' को देखने के लिए अच्छा प्रदर्शन कर सकते हैं; http://peepcode.com/ पर एक संबंधित स्क्रीनकास्ट भी है। –

4

लघु जवाब:
(load-file "full-path-to-definition")

लांग जवाब: यहाँ क्या मेरी बूटस्ट्रैपिंग प्रक्रिया लग रहा है की तरह है:

~/.clojure/user.clj में (इस फ़ाइल ऑटो चलाने के लिए जब आप कीचड़ बूट है/clojure):
(add-classpath "file://path/to/foo.jar") ; Include these jars in the classpath
(add-classpath "file://path/to/foo2.jar")
(load-file "file://workspace/bootstrap.clj")

bootstrap.clj में:
(compile 'my.package)

पैकेज फ़ाइल (रों) /workspace/my/package.clj

पर है package.clj में:
(ns my.package)
(defn foo [] (+ 2 2))

6

Leiningen एक नया क्लोजर बिल्ड टूल है जो आपके लिए क्लासपाथिंग के बारे में चिंतित है। आपने प्रोजेक्ट की रूट निर्देशिका में अपनी प्रोजेक्ट की मुख्य श्रेणी निर्दिष्ट करने के लिए एक सरल प्रोजेक्ट फ़ाइल सेट की है, और यह स्वचालित रूप से आपकी lib निर्देशिका में सभी JARs को खोजता है और उन्हें आपके लिए लोड करता है।

अब मैं एक कमांड लाइन पर "लीन स्वैंक" टाइप करता हूं और फिर एमएक्स स्लिम-एमाक्स में कनेक्ट करता हूं, और सबकुछ बस काम करता है। (इसे आसानी से थोड़ा एलिसप के साथ स्वचालित किया जा सकता है।)

this blog post में अधिक जानकारी।

+0

यह वास्तव में वास्तव में एक अच्छा समाधान है। अब मैं टेक्स्टमैट के साथ काम कर सकता हूं। धन्यवाद। – MrHus

1

Emacs, SLIME और swank-clojure का उपयोग करते समय मैंने पाया सबसे अच्छा तरीका (Emacs Lisp) फ़ंक्शन swank-clojure-project का उपयोग करना है। इसके प्रलेखन से:

(स्वांक-clojure-परियोजना पथ) एक clojure परियोजना के लिए

सेटअप classpath और एक नया कीचड़ सत्र शुरू होता है। मौजूदा एसएलएमई सत्र, यदि कोई हो, को मारता है।

यदि आप "एम-एक्स स्वैंक-क्लोजर-प्रोजेक्ट" करते हैं, तो यह आपको आपकी प्रोजेक्ट निर्देशिका के लिए इंटरैक्टिव रूप से संकेत देगा; एक बार जब आप इसे चुन लेते हैं, तो एक lib उपनिर्देशिका में सभी जार, साथ ही साथ src और वर्ग फ़ोल्डर को आपके क्लासपाथ में जोड़ा जाएगा। यह एक मेवेन/लीन निर्देशिका संरचना का भी सम्मान करेगा, दूसरे शब्दों में: यह आमतौर पर काम करेगा।

यदि आप कुछ बदलते हैं, उदा। एक नई जार फ़ाइल जोड़ें, बस फिर से swank-clojure-project करें।

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