मैं एक elisp फ़ंक्शन लिख रहा हूं जो वर्तमान प्रमुख मोड के कीमैप में दिए गए आदेश को किसी दिए गए कुंजी को स्थायी रूप से बाध्य करता है। उदाहरण के लिए,वर्तमान स्थानीय कीमैप का Emacs नाम?
(define-key python-mode-map [C-f1] 'python-describe-symbol)
कमांड और कुंजी अनुक्रम उपयोगकर्ता से इंटरैक्टिव रूप से एकत्र किए जाते हैं। हालांकि, मुझे KEYMAP (उदा। 'पायथन-मोड-मैप') का नाम बनाने में परेशानी हो रही है जो वर्तमान प्रमुख मोड से मेल खाती है।
मैंने फ़ंक्शन (वर्तमान-स्थानीय-मानचित्र) का प्रयास किया है, लेकिन यह फ़ंक्शन इसके नाम के बजाय कीमैप ऑब्जेक्ट को स्वयं देता है।
मैं समझता हूं कि कई प्रमुख मोड कीपैप्स को 'प्रमुख-मोड-नाम'-मोड-मैप 'के अनुसार नामित किया गया है, हालांकि, यह हमेशा मामला नहीं है (उदाहरण के लिए, पायथन-शेल-मैप), तो मैं बल्कि मेरा कोड इस सम्मेलन पर भरोसा नहीं करता। (मुझे यह भी यकीन नहीं है कि वर्तमान प्रमुख मोड के नाम तक कैसे पहुंचे)। इसलिए हालांकि
(define-key (current-local-map) key command)
काम करने के लिए लगता है, यह एक आरंभीकरण फ़ाइल पर कोड के रूप में काम नहीं करता है
(define-key ...)
, एक init फाइल करने के लिए जोड़ा जा रहा है।
आप कोड क्यों लिख रहे हैं जो अन्य कोड उत्पन्न करता है? आप जिस गहरे मुद्दे को हल करने की कोशिश कर रहे हैं वह क्या है? क्या आप शायद कुछ पुस्तकालयों को लिख सकते हैं जिन्हें दूसरों को बस 'आवश्यकता' हो सकती है? क्या आप एक ऐसे मोड को लिखने में सक्षम होंगे जो इस प्रकार के कार्यों को 'जादुई-वर्णन-प्रतीक' करता है जो वर्तमान मोड के आधार पर सही चीज करता है? इत्यादि। –
मेरा बिंदु/प्रश्न यह है कि, यदि आप प्रोग्रामिक रूप से इन्हें जोड़ सकते हैं, तो आप इसे अधिक सामान्य, अधिक सुरुचिपूर्ण तरीके से हल करने में सक्षम हो सकते हैं - जिसमें कोड के स्निपेट का एक गुच्छा शामिल नहीं है जो लगभग समान दिखता है मोड मैप ... –
@ ट्रेजैकसन उन "स्निपेट्स का समूह" कोड के टुकड़े हो सकते हैं जो किसी के '.emacs' (उचित संख्या में, निश्चित रूप से) में हैं। कोड जो अन्य कोड उत्पन्न करता है वह लिस्प में नहीं है। – user4815162342