मुझे यहां "गलत प्रकार का तर्क: कमांडप, (लंबोदर नील (आगे की पंक्ति 5))" मिल रहा है।
(global-set-key [?\M-n] (lambda () (forward-line 5)))
त्रुटि क्या है? मुझे पूरा यकीन है कि यह सरल है और मुझे कुछ स्पष्ट याद आ रहा है।
मुझे यहां "गलत प्रकार का तर्क: कमांडप, (लंबोदर नील (आगे की पंक्ति 5))" मिल रहा है।
(global-set-key [?\M-n] (lambda () (forward-line 5)))
त्रुटि क्या है? मुझे पूरा यकीन है कि यह सरल है और मुझे कुछ स्पष्ट याद आ रहा है।
जवाबों:
global-set-key
एक इंटरैक्टिव कमांड की उम्मीद है। (lambda () (interactive) (forward-line 5))
काम करना चाहिए।
वैसे, इस तरह की C-h f commandp
त्रुटियों के लिए एक बहुत अच्छा प्रारंभिक बिंदु है।
(commandp)
प्रलेखन के अनुसार , लैम्ब्डा काम करने के लिए शीर्ष स्तर की कॉल के साथ कार्य (interactive)
करता है, लेकिन मैं (defun)
उस फ़ंक्शन को कैसे काम कर सकता हूं ?
सही रूप यह होना चाहिए -
(global-set-key (kbd "M-n") (lambda () (interactive) (forward-line 5)))
समस्या यह थी कि आप डाल देना भूल गए (interactive)
(जैसा कि ब्रेंडन ने उल्लेख किया है)।
वैसे, आप देखेंगे कि मैंने (kbd)
कुंजी-बंधन को निर्दिष्ट करने के लिए फ़ंक्शन का उपयोग किया था । यह फ़ंक्शन बेहद उपयोगी है क्योंकि आप की-बाइंडिंग को लगभग शाब्दिक रूप से रख सकते हैं।
मैंने इस त्रुटि को एक नई मशीन पर भी देखा है जहां मैं अपनी सामान्य .emacs
फ़ाइल का उपयोग कर रहा हूं लेकिन अपने पैकेजों को स्थापित नहीं किया है, और निष्पादित होने वाली कमांड उन पैकेजों में से एक है। (क्योंकि एक आदेश जिसे निश्चित रूप से निष्पादित नहीं किया जा सकता है वह इंटरैक्टिव नहीं है!)