2012-05-04 7 views
13

के रूप में एक कुंजी व्यवहार करें मैं कुछ कुंजी और कुंजी संयोजनों को Emacs में अन्य कुंजी या कुंजी संयोजन के रूप में व्यवहार करने के लिए चाहता हूं। उदाहरण के लिए, मैं F5 यह शामिल हर संभव संयोजन के लिए के लिए सी-सी एक विकल्प है, या सी एस रूप सी के रूप में व्यवहार करना चाहते हैं। क्या ऐसा करना संभव है कि ऐसे सभी महत्वपूर्ण संयोजनों को मैन्युअल रूप से पुनर्निर्मित किए बिना?एक और कुंजी

उत्तर

8

जिन कुंजीों का आप उल्लेख कर रहे हैं उन्हें 'उपसर्ग कुंजी' के रूप में जाना जाता है। एक उपसर्ग कुंजी का अपना कीपैप होता है, इसलिए एक और कुंजी समान व्यवहार करने के लिए, आपको इसे उसी कीमैप पर असाइन करने की आवश्यकता होती है। के लिए Control-, आप mode-specific-map का उपयोग करें: अपने आप ही

(global-set-key (kbd "<f5>") mode-specific-map) 

नियंत्रण एक उपसर्ग कुंजी नहीं है, या वास्तव में एक महत्वपूर्ण बिल्कुल है, क्योंकि यह Emacs करने के लिए एक कुंजी दबाने नहीं भेजता है [1] जब तक आप एक और कुंजी हिट नहीं करते। मुझे यकीन नहीं है कि Emacs के भीतर सी-एस-टू-सी को रीमेप कैसे करें। आप इसे xmodmap के साथ सिस्टम-वाइड कर सकते हैं, लेकिन शायद यह नहीं है कि आप क्या चाहते हैं।

[1] नियंत्रण कुंजी (और पाली, ऑल्ट) ऑपरेटिंग सिस्टम के लिए एक कुंजी दबाने भेज करते हैं, लेकिन Emacs इस जब तक एक ही समय में दबाया एक अन्य प्रमुख है वहाँ

+1

+1 लेकिन ... * "अपने आप पर नियंत्रण एक उपसर्ग कुंजी नहीं है, या वास्तव में एक कुंजी है, क्योंकि यह एक कीप्रेस नहीं भेजता है" * ... नियंत्रण निश्चित रूप से एक कुंजीपटल भेजता है । आप इसे देखने के लिए लिनक्स के तहत * xev * का उपयोग कर सकते हैं। जब आप इसे दबाते हैं तो यह एक कीप्रेस भेजता है और जब आप इसे रिलीज़ करते हैं तो एक कीरलीज भेजता है। मेरे सिस्टम पर CTRL के लिए एक * xev * आउटपुट देता है: * KeyPress eventKeyPress ईवेंट ... राज्य 0x14, कीकोड 37 (keysym 0xffe3, Control_L) ... * आदि। मैं विवाद विवाद करता हूं कि आपने लिखा है कि नियंत्रण वास्तव में नहीं है "वास्तव में कुंजी बिल्कुल "। मेरे कीबोर्ड के CTRL और CAPS-LOCK को CTRL के रूप में कार्य करने के लिए रीमेप किया गया अपराध करना;) – TacticalCoder

+1

@ टैक्टिकलकोडर: उचित बिंदु, जहां तक ​​एक्स का संबंध है। लेकिन मुझे नहीं लगता कि एक्स द्वारा पंजीकृत कीप्रेस अपने आप पर Emacs के लिए दृश्यमान है। Emacs को किसी अन्य कुंजी को संशोधित नहीं कर रहा है, तो संशोधक कुंजी का पता लगाने या जवाब देने के लिए वैसे भी नहीं है। तो Emacs के परिप्रेक्ष्य से, CTRL अपने आप पर एक कुंजी नहीं है जब तक कि यह एक और कुंजी के साथ संयुक्त नहीं है। – Tyler

5

मैं

पसंद नहीं 'देख' है
(define-key key-translation-map [f5] (kbd "\C-c")) 

यहां एक good resource है।

ऊपर दिए गए लिंक को संक्षेप में सारांशित करने के लिए: वैश्विक-सेट-कुंजी का नुकसान यह है कि, जब आप प्रतीक दर्ज करने के लिए एक महत्वपूर्ण संयोजन परिभाषित करते हैं, तो यह खोज में काम नहीं करता है।

कुंजी-अनुवाद-मानचित्र में भी एक समस्या है। कल्पना कीजिए कि आपने एक प्रतीक परिभाषित किया है कमांड निष्पादित करने के लिए और सी- | प्रतीक दर्ज करने के लिए |, दबाकर सी- | कमांड निष्पादित करेगा।

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