2010-05-25 9 views
8

मैं प्रलेखन पढ़ सकता हूं, इसलिए मैं उस का एक कट-पेस्ट नहीं मांग रहा हूं।Emacs फ़ंक्शन का उद्देश्य क्या है (eval-and-compile ...)?

मैं इस फ़ंक्शन के लिए प्रेरणा को समझने की कोशिश कर रहा हूं।

मैं इसका उपयोग कब करना चाहूंगा?

उत्तर

8

documentation in the Emacs lisp manual में कुछ उदाहरण स्थितियां हैं जो आपके प्रश्न का उत्तर देने लगती हैं (जैसे दस्तावेज़ स्ट्रिंग के विपरीत)।

Emacs स्रोत कोड देख से, eval-and-compile संकलक शांत करने के लिए, संकलन (और मूल्यांकन) के दौरान मैक्रो/कार्य उपलब्ध बनाने के लिए, या संकलन के दौरान मैक्रो/कार्यों की सुविधा/संस्करण विशिष्ट वेरिएंट उपलब्ध बनाने के लिए प्रयोग किया जाता है।

एक उपयोग जो मुझे देखने में मददगार पाया ezimage.el में था। वहां, if कथन को eval-and-compile के अंदर सशर्त रूप से मैक्रोज़ को परिभाषित करने के लिए रखा गया था, इस पर निर्भर करता है कि पैकेज को इमेक्स या एक्सईएमएक्स में संकलित/निकाला गया था, और इसके अतिरिक्त कोई विशेष सुविधा मौजूद थी या नहीं। eval-and-compile के अंदर उस सशर्त को लपेटकर आप संकलन के दौरान उपयुक्त मैक्रो उपयोग सक्षम करते हैं। एक समान स्थिति mwheel.el में पाई जा सकती है। > समारोह संघ जब तक फ़ाइल मूल्यांकन किया जाता है उपलब्ध नहीं है -

इसी प्रकार, यदि आप इसे संकलन के दौरान उपलब्ध fset के माध्यम से एक समारोह को परिभाषित करने और करना चाहते हैं, तो आप eval-and-compile साथ लिपटे fset को कॉल करने की है क्योंकि अन्यथा प्रतीक की जरूरत है (क्योंकि fset पर कॉल का संकलन केवल असाइनमेंट को अनुकूलित करता है, यह वास्तव में असाइनमेंट नहीं करता है)। संकलन के दौरान आप यह असाइनमेंट क्यों चाहते हैं? कंपाइलर शांत करने के लिए। नोट: यह सिर्फ मेरी पुन: शब्द है जो elisp दस्तावेज़ीकरण में है।

मैंने एमाक्स कोड में बहुत सारे उपयोग किए हैं, जो सिर्फ require पर कॉल लपेटते हैं, जो दस्तावेज़ों को पढ़ने पर अनावश्यक लगता है। मुझे नुकसान पहुंचा है कि उनको कैसे समझाया जाए।

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