मान लीजिए कि आपके पास emacs चल रहा है और सीवीएस से SLIME की जांच की है और इसे इंस्टॉल किया है। यह किसी भी लिनक्स distro के साथ आसान होना चाहिए; apt-get install emacs slime
यह मेरे लिए करता है। (आपको एसबीसीएल, सर्वश्रेष्ठ कॉमन लिस्प कार्यान्वयन भी स्थापित करना चाहिए।)
बॉक्स से बाहर एसएलईएमई अब और कुछ नहीं करता है, इसलिए इसे कॉन्फ़िगरेशन की आवश्यकता है। Emacs को कॉन्फ़िगर करना आपके ~/.emacs
फ़ाइल में किया जाता है। उस फ़ाइल पर जाएं (C-x C-f ~/.emacs)
।मैं कुछ इस तरह, जो उपहार की एक किस्म को लोड करता है:
(eval-after-load "slime"
'(progn
(setq slime-lisp-implementations
'((sbcl ("/usr/bin/sbcl"))
(ecl ("/usr/bin/ecl"))
(clisp ("/usr/bin/clisp"))))
(slime-setup '(
slime-asdf
slime-autodoc
slime-editing-commands
slime-fancy-inspector
slime-fontifying-fu
slime-fuzzy
slime-indentation
slime-mdot-fu
slime-package-fu
slime-references
slime-repl
slime-sbcl-exts
slime-scratch
slime-xref-browser
))
(slime-autodoc-mode)
(setq slime-complete-symbol*-fancy t)
(setq slime-complete-symbol-function
'slime-fuzzy-complete-symbol)))
(require 'slime)
आप है कीचड़ अपने "साइट निर्देशिका" में स्थापित नहीं करते हैं, तो आप भी उन पंक्तियों से पहले इस जोड़ना चाहें,:
(add-to-list 'load-path "~/elisp/slime/")
(add-to-list 'load-path "~/elisp/slime/contrib")
(सही स्थान पर इन रास्तों, निश्चित रूप से बदलें।)
महत्वपूर्ण हिस्सा कीचड़-सेटअप है, इस आरईपीएल सहित वैकल्पिक मॉड्यूल, की एक किस्म लोड करता है। (मैं भी कल्पना खरोज, और autodoc आवश्यक मानते हैं।)
वैसे भी, आप M-x eval-buffer
के साथ अपने चल Emacs में इस लोड कर सकते हैं, या प्रत्येक sexp अंदर बिंदु डालने और C-M-x
दबाकर। इस बिंदु पर (आप भी sexp के अंत की ओर इशारा कर सकते हैं और C-x C-e
दबाएँ। तरीके Emacs, में Emacs लिस्प का मूल्यांकन करने के लिए कई तरह के होते हैं लेकिन यह है कि सीएल सीखने के वास्तव में प्रासंगिक नहीं है।)
, आपको चाहिए M-x slime
टाइप करने में सक्षम हो और पर अपने आरईपीएल पर ले जाया जा सके। ऐसा होने से पहले, आपका लिस्पी लोड हो जाएगा, एसएलईएमई इसे स्वैंक (एसएलआईएमई के सीएल पक्ष) को संकलित करने के लिए बताएगा, और आप देखेंगे कि होता है। यह केवल एक बार होता है, हालांकि, अगली बार SLIME तेज शुरू करेगा।
आरईपीएल पर, आप सामान्य लिस्प कमांड टाइप कर सकते हैं और का परिणाम उनके मूल्यांकन देख सकते हैं। कुछ पूरा करने के लिए टैब दबाकर संभावित पूर्णता की विंडो लाएगी; यह स्मार्ट पूर्णता है, इसलिए टाइपिंग "डी-बी" जैसी कुछ सूची "विनाशकारी-बाइंड" वाली एक सूची लाएगी। बहुत उपयोगी। एम-/ प्रतीकों को भी पूरा करेगा जो आपने पहले से ही Emacs के अंदर टाइप किया है; एक और महान समय सेवर। (यह Emacs, BTW में हर जगह काम करता है, और इसे "डायनामिक संक्षेप विस्तार" कहा जाता है।)
इससे पहले आपने कहा था कि आरईपीएल उबाऊ था, तो चलिए एक असली फाइल खोलें। C-x C-f test.lisp
दबाएं। आश्चर्य की बात नहीं है, यह बफर संपादन test.lisp खोल देगा, जिसे पहली बार फ़ाइल (C-x C-s
) सहेजने पर बनाया जाएगा। यह लिस्प फ़ाइल एसएलआईएमईई से अवगत है, इसलिए आपके द्वारा टाइप किए जाने वाले कुछ भी आसानी से चल रहे लिस्प द्वारा सत्यापित किए जा सकते हैं। टैब पूर्णता, कक्षा निरीक्षण, इंटरैक्टिव परीक्षण, आदि सभी उपलब्ध हैं।
उदाहरण के तौर पर, (+ 1 2)
जैसे कुछ टाइप करें और C-x C-e
दबाएं। आप विंडो के नीचे पर चल रहे लिस्प द्वारा मूल्यांकन किए गए परिणाम देखेंगे। यह आपको व्यक्तिगत अभिव्यक्तियों का परीक्षण करने देता है क्योंकि आप उन्हें फ़ाइल में टाइप करते हैं।
अगले कदम के लिए एक पूर्ण समारोह, शायद लिखना है:
(defun my-1+ (x)
(+ x 1))
आप विभिन्न तरीकों से में चल लिस्प में इस समारोह लोड कर सकते हैं; मैं आमतौर पर C-M-x
का उपयोग करता हूं।अब आप आरईपीएल बफर (C-x b *slime-repl sbcl*
या इसी तरह) पर वापस बदल सकते हैं और (my-1+ 42)
टाइप करें और परिणाम 43
मुद्रित देखें।
चल रहे लिस्प में कार्यों को लाने का एक और तरीका संकलित करना है और C-c C-k
के साथ पूरी फ़ाइल लोड करना है।
वैसे भी, यह एसएलईएमई और एमएक्स का उपयोग करने की मूल बातें है। स्पष्ट रूप से कई और सुविधाएं उपलब्ध हैं, लेकिन इससे आपको एसएलईएमई के साथ लिस्प प्रोग्रामिंग का स्वाद देना चाहिए। एक आखिरी बात जिसका मैं उल्लेख करूंगा, Emacs बड़े पैमाने पर स्वयं-दस्तावेज है, इसलिए यदि आप और जानना चाहते हैं, तो Emacs आपकी मदद कर सकता है। आपके लिस्प बफर में रहते हुए, प्राप्त करने के लिए आप C-h m
टाइप कर सकते हैं, जो आप लिस्प को संपादित करते समय उपयोग कर सकते हैं। आप प्रत्येक समारोह के बारे में अधिक जानकारी प्राप्त करने के लिए लिंक पर क्लिक कर सकते हैं।
मज़े करो!
मैं, प्रैक्टिकल कॉमन लिस्प के साथ आरंभ करने के लिए Lispbox उपयोग करने की कोशिश की है, लेकिन वे एक FreeBSD सेटअप नहीं था, और मैं था इसे अपने मंच पर चलाने की कोशिश करने में कठिनाई। मुझे आशा है कि जब मैं अधिक अनुभवी हो जाऊं, तो मैं "सज्जन परिचय" समाप्त करने के बाद फिर कोशिश कर सकता हूं। –