उपसर्ग कुंजी के रूप में Cx या Cc का उपयोग करने के बारे में कन्वेंशन


16

प्रयोग करने के लिए सम्मेलनों क्या हैं C-x, C-cया M-के रूप में उपसर्ग कुंजी?

उदाहरण के लिए: C-xबफ़र्स को बचाने या जाने के लिए, आदि है? है C-c, आदि, पाठ संपादन के लिए?

पृष्ठभूमि

शायद यह एक मूर्खतापूर्ण सवाल है। मैं स्पैनिश कीबोर्ड का उपयोग करता हूं, और कभी-कभी कीबाइंडिंग को फिर से परिभाषित करता हूं जो एक अंग्रेजी (QWERTY) कीबोर्ड के लिए सामान्य है। उदाहरण के लिए: शेल कमांड वनीला एमएसीएस में बाध्य है M-!। मैं M-¡इसके बजाय इसे बाँधता हूँ , क्योंकि यह वह M-!है M-shift-1, जिसे मैं आसानी से नहीं दबा सकता। मैं सोच रहा हूं कि क्या इस तरह के बदलाव करने पर अधिवेशन हो रहे हैं या नहीं


जैसे M-x"विस्तारित कमांड को निष्पादित करने के लिए है, यह बहुत सारे परिष्कृत सामान का प्रवेश द्वार है जिसे आप Emacs में अंतःक्रियात्मक रूप से पूरा कर सकते हैं; यह आपको नाम से किसी भी एलिफ़ फ़ंक्शन को चलाने की अनुमति देता है।" ऐसा नहीं है C-cऔर C-xएक विवरण है?
पिनोचियो

जवाबों:


21

यदि आप अपने स्वयं के उपयोग के लिए बाइंडिंग कुंजी के बारे में बात कर रहे हैं, तो यह नियम है: आप अपनी पसंद की किसी भी कुंजी को बांध सकते हैं।

यदि आप यह सुनिश्चित करना चाहते हैं कि एक कुंजी को बांधना नहीं है जो पहले से ही बाध्य हो सकता है तो C-cएक पत्र का उपयोग करें । ऐसी सभी कुंजियाँ उपयोगकर्ताओं के लिए आरक्षित हैं (आगे देखें)।


यदि आप कोड (जैसे, एक पुस्तकालय) में बाध्यकारी कुंजियों के बारे में बात कर रहे हैं, जो आप दूसरों द्वारा उपयोग के लिए लिखते हैं, तो नियम (सम्मेलनों) का वर्णन यहां किया गया है: एलिफ मैनुअल के नोड कुंजी बंधन सम्मेलन

वहाँ मुख्य नियम, जो आप पूछते हैं, उससे संबंधित हैं C-c:

  • C-c LETTERलिस्प कार्यक्रमों में एक कुंजी के रूप में परिभाषित न करें । C-cउपयोगकर्ताओं के लिए एक पत्र और एक पत्र (या तो ऊपरी या निचले मामले) से युक्त अनुक्रम आरक्षित हैं; वे केवल उपयोगकर्ताओं के लिए आरक्षित अनुक्रम हैं, इसलिए उन्हें ब्लॉक न करें।

  • C-cएक नियंत्रण चरित्र या एक अंक द्वारा पीछा अनुक्रमों प्रमुख मोड के लिए आरक्षित हैं।

  • मिलकर के दृश्यों C-cके बाद {, }, <, >, : या ;भी प्रमुख मोड के लिए आरक्षित हैं।

  • C-cकिसी भी अन्य ASCII विराम चिह्न या प्रतीक चरित्र द्वारा पीछा किए जाने वाले दृश्यों को मामूली मोड के लिए आवंटित किया जाता है। एक प्रमुख मोड में उनका उपयोग करना बिल्कुल निषिद्ध नहीं है, लेकिन यदि आप ऐसा करते हैं, तो प्रमुख मोड बाइंडिंग समय-समय पर मामूली मोड के लिए छाया हो सकता है।

आप ध्यान देंगे कि कोई सम्मेलन नहीं हैC-x । एक अस्थिर सम्मेलन, या सिर्फ अच्छी सलाह / अभ्यास यह एक है, हालांकि: यदि आप कुछ मौजूदा, मानक Emacs बाइंडिंग (यानी, एक जो आप Emacs से वितरित के रूप में, किसी भी 3-पार्टी पुस्तकालयों को लोड किए बिना) को प्रतिस्थापित करते हैं, तो वह दुरुपयोग हो सकता है या आपके कोड के कुछ उपयोगकर्ताओं को परेशान करता है।


आप इस तरह से Emacs के भीतर उस डॉक पर जा सकते हैं:

  1. C-h iजानकारी खोलने के लिए, डॉक्टर ब्राउज़र।
  2. m el TAB RET, m enu el isp ( TABपूर्ण करने के लिए), या Elispअपने माउस के साथ लिंक पर क्लिक करें।
  3. key bi TAB, तो n TAB RETपूरा करने के लिए Key Binding Conventions

या आप iअनुक्रमणिका प्रविष्टियों को पूरा करने के लिए एलिफ़स मैनुअल के भीतर उपयोग कर सकते हैं :

  1. C-h i m el TAB RET
  2. i key bi TAB, जो key bindingआपको दो संभावनाओं को पूरा करता है और दिखाता है: key bindingऔर key binding, conventions for, TABदूसरे को पूरा करने के लिए टाइप करें, फिर RETइसे स्वीकार करने के लिए।

C-cउपयोगकर्ता कमांडों को बांधने और पत्र करने के लिए सम्मेलन का पालन करना बेहतर है । इस तरह एक (लगभग) यह सुनिश्चित हो सकता है कि कोई पहले से स्थापित एक प्रमुख मोड से कुछ अन्य बंधन को ओवरराइड नहीं करता है या भविष्य में किसी दिन स्थापित किया जा सकता है।
टोबियास

1
@ टोबियास: यकीन नहीं होता कि आप क्या कह रहे हैं। इससे बेहतर क्या? मुख्य-बाध्यकारी सम्मेलनों के सभी का पालन किया जाना चाहिए, जिसमें C-c3-पार्टी लाइब्रेरी में बाध्यकारी नहीं होना चाहिए ।
आकर्षित किया

आपने अपने उत्तर के पहले वाक्यों में सही कहा है कि निजी उपयोग के लिए कोई कड़े नियम नहीं हैं। फिर भी मेरी पहली टिप्पणी में दिए गए कारणों के लिए उपयोगकर्ता कीबाइंडिंग के लिए सम्मेलनों का पालन करना उचित है। हो सकता है, आप इसके बारे में एक नोट जोड़ सकते हैं कि नीचे आपका पहला भाग में सब कुछ नियम से चलता है। यही सब मैं कहना चाहता था, आकर्षित किया। सबसे अच्छा संबंध है,
टोबियास

3
@ टोबियास: मैंने कहा कि मुझे लगता है कि आप कह रहे हैं; धन्यवाद। लेकिन देखते हैं कोई कुंजी बाइंडिंग के संबंध में अनुवर्ती के लिए एक उपयोगकर्ता के लिए सम्मेलनों। "उपयोगकर्ता कीबाइंडिंग के लिए सम्मेलनों" है कि आप की बात उपयोगकर्ताओं के लिए सम्मेलनों नहीं हैं। वे लिस्प को कोड करने के लिए कन्वेंशन हैं जो दूसरों द्वारा उपयोग किए जाएंगे। (मुझे पता है कि आप यह जानते हैं। बस स्पष्ट होना चाहते हैं, किसी और को यह पढ़ने के लिए।)
आकर्षित

एक नियंत्रण चरित्र क्या है?
डिडियर ए।

2

@ ड्रू का उत्तर बहुत अधिक सूक्ष्म और विस्तृत है।

यह पूरी तरह से वैध प्रश्न है! वहाँ कन्वेंशन है जो C-xस्वयं emacs द्वारा आरक्षित है जबकि C-cउपसर्ग का उपयोग उपयोगकर्ता परिभाषित कीबाइंडिंग के लिए किया जाता है।

इस पर एक नज़र डालें , विशेष रूप से "आरक्षित कुंजी" अनुभाग। मुझे पूरा यकीन है कि यह जानकारी emacs मैनुअल में भी बताई गई है, लेकिन मैं अभी इसे ढूंढ नहीं पा रहा हूं। सम्मेलनों का वर्णन इमैक लिस्प मैनुअल के इस खंड में किया गया है।


1
C-cइसके बाद एक पत्र (कम या ऊपरी मामला) के बिना और अधिक संशोधक उपयोगकर्ताओं के लिए आरक्षित है। साथ शुरू होने वाले कई अन्य प्रमुख अनुक्रम C-cप्रमुख मोडों के लिए आरक्षित हैं - विशेष रूप से उन पर जहां दूसरा कुंजी-स्ट्रोक भी नियंत्रण कुंजी द्वारा संशोधित किया गया है।
तोबियों

आप निश्चित रूप से सही कह रहे हैं। @ ड्रू ने इस सवाल का बेहतर जवाब दिया।
पनगीओटीस कौतसुरकिस

जैसे M-x"विस्तारित कमांड को निष्पादित करने के लिए है, यह बहुत सारे परिष्कृत सामान का प्रवेश द्वार है जिसे आप Emacs में अंतःक्रियात्मक रूप से पूरा कर सकते हैं; यह आपको नाम से किसी भी एलिफ़ फ़ंक्शन को चलाने की अनुमति देता है।" ऐसा नहीं है C-cऔर C-xएक विवरण है?
पिनोचियो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.