एक Emacs शुरुआत के रूप में, मैं एक मामूली मोड लिखने पर काम कर रहा हूँ। प्रोग्रामिंग elisp की मेरी वर्तमान (बेवकूफ) विधि में परिवर्तन करने, Emacs को बंद करने, Emacs को पुनरारंभ करने, और परिवर्तन को देखने के होते हैं। मैं इस प्रक्रिया को कैसे व्यवस्थित कर सकता हूं? क्या सब कुछ ताज़ा करने के लिए कोई आदेश है?मैं एमैक्स लिस्प कोड को आसानी से कैसे लोड कर सकता हूं क्योंकि मैं इसे संपादित कर रहा हूं?
उत्तर
आप एम-सी-एक्स (eval-defun
) का उपयोग करने का प्रयास कर सकते हैं, जो बिंदु के चारों ओर शीर्ष-स्तर के फॉर्म का फिर से मूल्यांकन करेगा। विपरीत एम एक्स eval-बफर या सी एक्स सी-ए (exal-last-sexp
), इस चर defvar
और defcustom
उनकी प्रारंभिक मान है, जो हो सकता है आप को क्या ट्रिपिंग है के साथ घोषित रीसेट कर देगा।
एम-एक्स eval-buffer इसे करना चाहिए।
यह सब आप जो लिख रहे हैं उस पर निर्भर करता है और आपने इसे कैसे लिखा है। मोड को टॉगल करना चाहिए आपको नया व्यवहार प्राप्त करना चाहिए।
(define-minor-mode my-minor-mode
"doc string"
nil
""
nil
(if my-minor-mode
(progn
;; do something when minor mode is on
)
;; do something when minor mode is off
)
लेकिन, एक और तरीका है इसे जल्दी जाँच करने के लिए अपने मौजूदा एक से एक नया Emacs अंडे देने के लिए होगा: आप [define-minor-mode][1]
का उपयोग कर रहे हैं, तो आप मैक्रो के शरीर कि मोड चर बंद कुंजी में कोड जोड़ सकते हैं :
M-x shell-command emacs&
इसके अलावा C-u C-M-x
और इस बिंदु पर परिभाषा मूल्यांकन करता है और वहाँ एक ब्रेकपाइंट सेट की कोशिश है, इसलिए जब आपको लगता है कि समारोह मारा आप डिबगर में गिरा दिया मिलता है।
M-x ielm
Emacs कोड विकसित करते समय अधिक सुविधा युक्त लिस्प REPL के रूप में भी बहुत उपयोगी है।
क्या शॉन ने कहा। इसके अलावा, मेरे पास एक परीक्षण के साथ (eval-defun)
एक कुंजी से जुड़ा हुआ है। विकास लूप तब बन जाता है: 1) फ़ंक्शन संपादित करें, 2) eval-and-test कुंजी दबाएं, 3) परिणाम देखें, 4) दोहराना। यह है अत्यधिक तेजी से।
विकास के दौरान मैं एक परीक्षण लिखता हूं, इसे jmc-test
पर बांधता हूं, फिर उपरोक्त कुंजी का उपयोग अपने बस-संपादित फ़ंक्शन पर चलाने के लिए करें। मैं और संपादित करता हूं, फिर फिर से जांचें, फिर से परीक्षण करें। जब फ़ंक्शन काम करता है, तो मैं jmc-test
को ज़ैप करता हूं, एक और फ़ंक्शन संपादित करता हूं, और एक और जेएमसी-टेस्ट फ़ंक्शन लिखता हूं। वे हमेशा कोड की एक पंक्ति हैं, बस बाहर धक्का आसान है।
(defun jmc-eval-and-test()
(interactive)
(eval-defun nil)
(jmc-test))
(define-key emacs-lisp-mode-map (kbd "<kp-enter>") 'jmc-eval-and-test)
(when t
(defun myfunc (beer yum)
(+ beer yum))
(defun jmc-test() (message "out: %s" (myfunc 1 2))))
"myfunc" संपादित करते समय, अगर मैं कीपैड दर्ज करता हूं, तो यह "आउट: 3" प्रिंट करता है।
आपके पास (कब ...) फॉर्म क्यों है? अन्यथा, इसे प्यार करो! – ftravers
मैं सिर्फ एक समारोह एलडीएफ, मेरे .emacs फ़ाइल में (लोड फ़ाइल का संक्षिप्त रूप) इस तरह कहा जाता है को परिभाषित:
(defun एलडीएफ (आर्ग) (इंटरैक्टिव 'पी') (लोड फ़ाइल (बफर -फाइल-नाम))
जैसा कि आप देख सकते हैं, यह छोटा फ़ंक्शन वर्तमान बफर के फ़ाइल नाम को देखता है और फिर फ़ाइल लोड करता है। जब भी मुझे वर्तमान बफर elisp फ़ाइल को फिर से लोड करने की आवश्यकता होती है, तो बस "एम-एक्स एलडीएफ" टाइप करें
- 1. क्या मैं इसे लिस्प में कर सकता हूं?
- 2. मैं .jar फ़ाइल को कैसे संपादित कर सकता हूं?
- 3. मैं डेटाबेस से जावा क्लास कैसे लोड कर सकता हूं?
- 4. मैं सी कोड को आसानी से कैसे बेंचमार्क कर सकता हूं?
- 5. मैं जावा से .NET कोड कैसे कॉल कर सकता हूं?
- 6. मैं क्रोम एमआईएम प्रकार मैपिंग कैसे संपादित कर सकता हूं?
- 7. मैं Django के साथ https कनेक्शन को आसानी से कैसे जांच सकता हूं क्योंकि मैं 'रनरवर' का उपयोग कर गैर-https कनेक्शन कर सकता हूं?
- 8. मैं मॉडल को सहायक कैसे लोड कर सकता हूं?
- 9. मैं अस्थायी रूप से फ़ॉन्ट कैसे लोड कर सकता हूं?
- 10. मैं एक तत्व का फ़ॉन्ट आकार कैसे प्राप्त कर सकता हूं क्योंकि इसे सीएसएस
- 11. मैं कोड से माउस इवेंट कैसे अनुकरण कर सकता हूं?
- 12. कोड को डुप्लिकेट किए बिना मैं WPF में अपरिवर्तनीय ऑब्जेक्ट्स को कैसे संपादित कर सकता हूं?
- 13. मैं क्लोजर स्रोत कोड को दोबारा कैसे कर सकता हूं?
- 14. क्या मैं बेस क्लास के आभासी फ़ंक्शन को कॉल कर सकता हूं यदि मैं इसे ओवरराइड कर रहा हूं?
- 15. यूनिट परीक्षण - क्या मैं इसे सही कर रहा हूं?
- 16. क्या मैं अनंत सीमा का उपयोग कर सकता हूं और इसे संचालित कर सकता हूं?
- 17. मैं टेबल को ठीक से कैसे छोटा कर सकता हूं?
- 18. नेटबीन: मैं इसे कैसे अक्षम कर सकता हूं?
- 19. मैं एंड्रॉइड लुक-बार कैसे आसानी से चला सकता हूं?
- 20. मैं उसी ड्राइव पर खोलने के लिए एनईआरडीटी कैसे बना सकता हूं जिसे मैं संपादित कर रहा हूं?
- 21. मैं XDocument से टेक्स्ट रीडर आसानी से कैसे प्राप्त कर सकता हूं?
- 22. मैं अपने स्रोत कोड को कैसे इंडेक्स कर सकता हूं?
- 23. क्या मैं एक Google क्रोम थीम संपादित कर सकता हूं?
- 24. मैं अपने एनएसटीमर को कैसे अपडेट कर सकता हूं क्योंकि मैं समय अंतराल
- 25. मैं वेबटेस्ट कैसे विफल कर सकता हूं?
- 26. मैं Java3D को तेज़ी से कैसे शुरू कर सकता हूं?
- 27. मैं एंड्रॉइड ओएस कीबोर्ड के स्रोत कोड को कैसे संपादित कर सकता हूं?
- 28. यूनिट परीक्षण डीएओ, क्या मैं इसे सही कर रहा हूं?
- 29. मैं आउटपुटस्ट्रीम को कैसे कार्यान्वित कर सकता हूं जिसे मैं रिवाइंड कर सकता हूं?
- 30. मैं इसे MySQL के साथ कैसे कर सकता हूं?
इवल-बफर कोड का पुनर्मूल्यांकन करता है, लेकिन मामूली मोड का व्यवहार अपडेट नहीं होता है, भले ही मैं इसे बंद कर दूं। क्या कोई ऐसा आदेश है जिसका उपयोग मैं नाबालिग मोड को पुनः लोड करने के लिए संयोजन में कर सकता हूं? – davidscolgan
खैर, मुझे लगता है कि मामूली मोड .emacs फ़ाइल संशोधनों के समान काम करते हैं, लेकिन मैं स्पष्ट रूप से गलत हूं। मेरा अगला अनुमान था कि।इमैक को भी ताज़ा किया जाना चाहिए- कोई पासा नहीं। मान लीजिए कि हम दोनों को किसी ऐसे व्यक्ति की प्रतीक्षा करने की आवश्यकता होगी जो जानता है कि वे किस प्रकार स्विंग करने के बारे में बात कर रहे हैं। गलत प्रयास के लिए खेद है। – Greg