वह व्यवहार जिसके लिए आप देख रहे हैं, Emacs Lisp फ़ंक्शन में सन्निहित है keyboard-quit
, डिफ़ॉल्ट रूप से C-g
(Control-g) से बंधा हुआ है । इसका व्यवहार मोटे तौर पर समतुल्य है, Emacs के संदर्भ में, C-c
एक शेल में सामान्य फ़ंक्शन के लिए ; यह जो भी लिस्प कोड चल रहा है उसे बाधित करेगा, और आपको शीर्ष स्तर पर वापस लाएगा। (विशेष रूप से, यदि आपको मिनीबफ़र में पाठ प्रविष्टि के लिए संकेत दिया जा रहा है और आप यह तय नहीं करना चाहते हैं कि यह जो कुछ भी है वह आपको सब के बाद संकेत दे रहा है, तो Cg यह है कि आप इसे कैसे रद्द करते हैं।)
डिफ़ॉल्ट रूप से एस्केप कुंजी का एक प्रेस, मेटा प्रीफिक्स कुंजी के रूप में कार्य करता है; अर्थात, एक कीबाइंडिंग जिसमें मेटा कुंजी (जैसे ) शामिल है M-x
, execute-extended-command
वैसे ही काम करेगा जैसे अगर आप Alt-x दबाते हैं, या यदि आप एस्केप दबाते हैं, तो X - Emacs अंतर नहीं करते हैं। ट्रिपल-दबाने वाला एस्केप कुंजी चलेगा keyboard-escape-quit
, जो keyboard-quit
एक "अधिक का अर्थ है कि मैं क्या करता हूं" व्यवहार के साथ अधिक है, - कुछ ऐसा जो मुझे एमाक्स का उपयोग करने के कई वर्षों में कभी नहीं चाहिए था, और वास्तव में कुछ के बारे में पता नहीं था मिनट पहले, लेकिन आप इसे उपयोगी पा सकते हैं।
उन चीजों के बारे में बोलना, जो आपको उपयोगी लग सकती हैं: आप किसी भी Emacs फंक्शन पर फंक्शन के माध्यम से इनवॉइस प्राप्त कर सकते हैं describe-function
, C-h f FUNCTION-NAME RET
जो कि ( जैसे , प्रेस और रिलीज कंट्रोल-एच, प्रेस एफ, प्रॉम्प्ट पर एक फंक्शन नेम में टाइप करें, रिटर्न लौटाएं), या के रूप में M-x describe-function RET FUNCTION-NAME RET
। चरों के लिए, यह वैसा ही है, सिवाय C-h v
या इसके describe-variable
, चर नाम; कीस्ट्रोक के लिए, यह C-h k
या है describe-key
, और आप उस कुंजी कॉर्ड को टाइप करते हैं जिसका बाइंडिंग आपको वर्णित है। ये तीन कार्य, C-h m
वर्तमान बफ़र के प्रमुख और लघु मोड पर प्रलेखन को पुनः प्राप्त करने के लिए, एमएसीएस कैसे काम करता है और यह क्या कर सकता है, इसकी खोज में बहुत उपयोगी हैं, और मैं उत्साहपूर्वक आपको उन्हें डिग्री को कम करने के लिए सबसे अच्छा और तेज़ तरीका बताता हूं। Emacs विदेशी और डराने वाले लगते हैं।
अब, अंत में, अपने वास्तविक प्रश्न का उत्तर देने के लिए: Emacs की डिफ़ॉल्ट कुंजी मैपिंग को फिर से कॉन्फ़िगर करना संभव हो सकता है, जैसे कि यह एस्केप कुंजी और मेटा कुंजी को अलग करता है। हालाँकि, मैं वास्तव में आपको ऐसा करने की कोशिश नहीं करता, कुछ कारणों से।
सबसे पहले, जब मुझे यकीन है कि ऐसा करने का एक तरीका है, यह जरूरी अस्पष्ट और मुश्किल हो रहा है, और इसमें गैर-स्पष्ट तरीकों से गलत होने की बहुत संभावना होगी - ऐसा कुछ, जो एमएसीएस के लिए ठीक है जब आप संपादक को सीखने की कोशिश कर रहे हों, तो यह वास्तव में उचित नहीं है। इससे भी बदतर, अगर आप इसे भोले और स्पष्ट फैशन में करने की कोशिश करते हैं (जैसे M-: (global-set-key (kbd "ESC") 'keyboard-quit) RET
), तो आप मेटा कुंजी व्यवहार को पूरी तरह से तोड़ देंगे। वास्तव में इसे सही तरीके से काम करने के लिए एमएसीएस के इनपुट इवेंट प्रोसेसिंग के निम्नतम स्तरों में उतरना होगा - एक हेडलैम्प पहनना, एक माचिस लाना और एक दोपहर का भोजन पैक करना। (शायद दो लंच।)
दूसरा, भले ही आप उस बंधन को मज़बूती से काम करते हुए प्राप्त कर सकते हैं, यह बहुत अधिक गैर-मानक है, जबकि आपके द्वारा उपयोग किए जाने वाले किसी भी Emacs, निश्चित रूप से C-g
बाध्य होंगे keyboard-quit
। विशेष रूप से संपादक को सीखते समय, यह डिफ़ॉल्ट रूप से कीबाइंडिंग के साथ परिचित होने के लिए सलाह दी जाती है, इसके बजाय एक फैशन में चीजों को रीबाइंड करने के बजाय जो केवल आपके स्वयं के एमएसीएस इनिट फाइलों के साथ काम करेगा। (यदि आप या तो यह गारंटी दे सकते हैं कि आप कभी भी कहीं भी Emacs का उपयोग अपने बॉक्स में नहीं करेंगे, या आप हमेशा अपनी Init फ़ाइलों को स्थापित करने में सक्षम होंगे, तो महान! जो Emacs के मानक पुस्तकालय का हिस्सा है, "डिफ़ॉल्ट" के रूप में गिना जाता है, क्योंकि आप इसे किसी भी ठीक से स्थापित Emacs के माध्यम से M-x vim-mode RET
या इसी तरह से लागू कर सकते हैं ।)
tl; dr: आप शायद ईएससी के साथ ऐसा कर सकते हैं, लेकिन ऐसा करने के लिए भयानक हैकरी ले लेंगे, यह बिल्कुल संभव है, और आप उन सुविधाओं के लिए उपयोग होने से बेहतर हो रहे हैं, जिन्हें एमएसीएस आपके द्वारा वांछित व्यवहार को लागू करने के लिए प्रदान करता है। ।