आपको 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
-आसपास के आसपास मुश्किल नहीं था, लेकिन चिंता करने के लिए कम चीजें रखना अच्छा लगता है।
स्रोत
2012-02-24 07:10:03
कीचड़-सीडी 'slime.el' में एक इंटरैक्टिव संकलित लिस्प फ़ंक्शन है। (कीचड़-सीडी निर्देशिका) डायरेक्ट्री लिस्प की वर्तमान निर्देशिका बनें। जो कुछ भी बदतर हो जाता है: सेट-डिफ़ॉल्ट-निर्देशिका रिटर्न। –
यह सहायक था। हालांकि, "सीडी शॉर्टकट" का लिंक मर चुका है। आप के मन में क्या था? – MadPhysicist