2012-02-23 24 views
7

अतीत में, मैं निम्नलिखित स्क्रिप्ट SBCL शुरू करने के लिए उपयोग करें:कीचड़ का उपयोग कर एसबीसीएल की वर्तमान निर्देशिका कैसे सेट करें?

breakchars="(){}[],^%$#@\"\";:''|\\" 
cd /media/E/work 

exec rlwrap --remember -c -b "$breakchars" -f "$HOME"/.sbcl_completions sbcl --noinform --userinit "$HOME"/.sbclrc "[email protected]" 

अब जब Emacs में कीचड़ का उपयोग कर, मुझे पता है doonot SBCL के मौजूदा निर्देशिका स्थापित करने के लिए कैसे?

किसी भी सुझाव की सराहना की जाती है!

उत्तर

5

आपको SLIME से वर्तमान निर्देशिका को बदलने की आवश्यकता क्यों है? मुझे लगता है कि ऐसा इसलिए नहीं है क्योंकि आप वर्तमान में लिख रहे सिस्टम से एक लिस्प स्रोत फ़ाइल पर जाना चाहते हैं, लेकिन क्योंकि आप उस कोड को लिखना चाहते हैं जो डेटा वाली फ़ाइल को पढ़ या लिखता है।

यदि ऐसा है, तो में local-projects को आजमाएं बेहतर है। quickproject के साथ, यह आपको आसानी से सिस्टम बनाने की अनुमति देता है, जिसे आप (ql:quickload 'my-system) या यहां तक ​​कि (require 'my-system) का उपयोग करके लोड कर सकते हैं।

यदि आपको सिस्टम my-system (केवल उदाहरणों को सुसंगत रखने के लिए अंतिम पैराग्राफ से नाम का उपयोग करके) के रूट से संबंधित डेटा फ़ाइल को संदर्भित करने की आवश्यकता है, तो आप asdf:system-relative-pathname का उपयोग कर सकते हैं। उदाहरण के लिए, (asdf:system-relative-pathname 'my-system "files/data.txt")

निश्चित रूप से, तैनाती एक पूरी तरह से अलग व्यवसाय है। मेरा समाधान how the running executable was called को यह निर्धारित करने के लिए है कि कोड तैनात किया गया है या विकास में है या नहीं। यदि विकास में, मैं asdf:system-relative-pathname का उपयोग करता हूं। यदि तैनात किया गया है, तो मैं निष्पादन योग्य के पथ के आधार पर फ़ाइलों का पथ निर्धारित करता हूं (प्रोजेक्ट बनाने के दौरान मेरी 'बिल्ड स्क्रिप्ट' इन फ़ाइलों को निष्पादन योग्य के बगल में कॉपी करता है)।

चूंकि मैंने इस दृष्टिकोण का उपयोग करना शुरू किया है, इसलिए cd के लिए मेरी आवश्यकता एसबीसीएल में शून्य हो गई। cd-आसपास के आसपास मुश्किल नहीं था, लेकिन चिंता करने के लिए कम चीजें रखना अच्छा लगता है।

8

एसएलआईएमई वर्तमान बफर से जुड़ी फाइल जहां निर्देशिका से ली गई वर्तमान निर्देशिका के साथ लिस्प प्रणाली शुरू करती है। आम तौर पर आप एक फ़ाइल खोलेंगे जहां आप पहले एसएलएमईई शुरू करना चाहते हैं।

यदि आप वर्तमान निर्देशिका को एक चल रहे लिस्प को बदलना चाहते हैं तो सबसे अच्छा तरीका ,cd shortcut का उपयोग करना है। यह मानता है कि आपके पास उचित कीचड़-प्रतिलिपि स्थापित है, क्योंकि वर्तमान में स्लिम इंस्टॉलेशन डिफ़ॉल्ट रूप से बहुत कम हैं। contributed packages देखें, शायद आप कम से कम slime-fancy metapackage चाहते हैं।

+1

कीचड़-सीडी 'slime.el' में एक इंटरैक्टिव संकलित लिस्प फ़ंक्शन है। (कीचड़-सीडी निर्देशिका) डायरेक्ट्री लिस्प की वर्तमान निर्देशिका बनें। जो कुछ भी बदतर हो जाता है: सेट-डिफ़ॉल्ट-निर्देशिका रिटर्न। –

+0

यह सहायक था। हालांकि, "सीडी शॉर्टकट" का लिंक मर चुका है। आप के मन में क्या था? – MadPhysicist