मैपिंग वाम Alt कुंजी विम में?


12

मैं कुंजी संयोजन Right Alt+ के Left Arrowसाथ <a-left>या उसके द्वारा मैप करने में सक्षम हूं <m-left>। लेकिन मैं Left Altकुंजी को मैप करने में सक्षम नहीं हूं ।

क्या ऐसा करने के लिए कोई रास्ता है?

संपादित करें:
बस स्पष्टता का <a-left>मतलब है Alt+ Left Arrow
यहाँ महत्वपूर्ण प्रश्न यह है कि विम में की-टैपिंग के परिप्रेक्ष्य में Left Altऔर उसके बीच अंतर क्या है Right Alt?

जवाबों:


14

यदि आप :help key-notationविम में करते हैं , तो आप देखेंगे कि केवल संशोधक विम पहचान शिफ्ट, नियंत्रण, alt / मेटा (समानार्थक शब्द के रूप में व्यवहार), और मैक कमांड कुंजी हैं। आप आसानी से एक नए संशोधक को अपनी सही ऑल्ट कुंजी को मैप करने के लिए xmodmap का उपयोग कर सकते हैं जिसे विम पहचानता है, लेकिन शायद उन संशोधक में से कोई भी वर्तमान में आपके द्वारा अप्रयुक्त नहीं है। (मुझे नहीं पता कि मैक कमांड कुंजी संशोधक का प्रतिनिधित्व करने के लिए लिनक्स सिस्टम प्राप्त करना संभव है क्योंकि विम इसे देखता है।) ऐसे अन्य संशोधक हैं जिन्हें एक्स पहचानता है: मोड 4, हाइपर, और इसी तरह, लेकिन ऐसा लगता है कि विम सिर्फ जीता है ' टी उन्हें देखें या कम से कम उन्हें बाँध नहीं सकते।

एक अन्य विकल्प राइट-लेफ्ट एरो के लिए एक विशेष कुंजी अनुक्रम उत्पन्न करने की व्यवस्था करना है, उदाहरण के लिए, Esc- [MyUniqueGarbageHere। यह निश्चित रूप से उल्लेखनीय है, और फिर आप विम को यह बताने के लिए कह सकते हैं कि आपको जो भी कार्रवाई पसंद है, जो आपकी बाईं ओर की कुंजी से भिन्न है। इसका नकारात्मक पक्ष यह है कि आपको इसे प्रत्येक RightAlt + कुंजी संयोजन के लिए व्यक्तिगत रूप से करने की आवश्यकता है। लेकिन अगर आप बस कुछ चाबियों के लिए ऐसा करना चाहते हैं, तो यह बहुत संभव है।

वास्तव में आप इसे कैसे लागू करते हैं, यह इस बात पर निर्भर करेगा कि आप X में या लिनक्स कंसोल में, या किसी अन्य वातावरण में Vim का उपयोग करने की बात कर रहे हैं। मुझे लगता है कि आप इसे एक्स में उपयोग करने के बारे में बात कर रहे हैं।

  1. RightAlt को बांधने के लिए xmodmap का उपयोग करें, मान लें, Mod3। अपने एक्स सेशन के शुरू होने पर इसे एक बार चलाने की व्यवस्था करें। कुछ वितरणों में पहले से ही एक / etc / X11 / xinit / xinitrc फाइल है जो xmodmap कमांड वाले विशिष्ट स्थानों पर फाइलों को लोड करेगी।

    xmodmap -e "remove Mod1 = Alt_R" -e "add Mod3 = Alt_R"
    
  2. मैं टर्मिनल urxvt का उपयोग करता हूं। यह एक Xresources- प्रकार फ़ाइल में कीबाइंडिंग को परिभाषित करने की अनुमति देता है। आप इसे ~ / .config / Xresources में कर सकते हैं; मैं इसे ~ / .config / app-defaults / URxvt में करता हूं। मैं उस फ़ाइल में इस तरह से एक लाइन डालूँगा (सटीक सिंटैक्स संवेदनशील है कि आप इसे किस फ़ाइल में डालते हैं):

    URxvt.keysym.Mod3-Left:    \033<RAlt-Left>
    

    अब एक नया टर्मिनल शुरू करें, ctrl-V टाइप करें, फिर राइटएटल + लेफ्ट टाइप करें। आपको कमांड लाइन पर वर्णों को देखना चाहिए ^ [[<RAlt-Left>। क्या यह काम करता है? अच्छा।

  3. अपने ~ / .vimrc में, इसे डालें:

    set t_Ff=^[<RAlt-Left>
    

यहाँ '^ [' एक एकल भागने का पात्र है। प्रत्येक अन्य वर्ण ('<', 'R', 'A', आदि) स्वयं हैं। विम के "शाब्दिक" कुंजी उपसर्ग का उपयोग करें, एक भागने के बाद, '^ [' में प्रवेश करने के लिए (मैं भूल गया कि "शाब्दिक" कुंजी डिफ़ॉल्ट रूप से क्या है --- ctrl-V, शायद?) T_Ff सिर्फ एक अन-टर्मिनल टर्मिनल प्रविष्टि है? । एक और t_Fg है। आप :set termcapवीआईएम का उपयोग यह देखने के लिए कर सकते हैं कि कौन सी टर्मिनल प्रविष्टियाँ असाइन की गई हैं, और बस कुछ XX के लिए t_XX का उपयोग करें जो उपयोग में नहीं है। इन अगले लोगों के साथ ऊपर प्रस्तुत .vimrc लाइन का पालन करें:

    map <t_Ff> whatever-vim-keys-you-want-it-mapped-to
    map! <t_Ff> whatever-vim-keys-you-want-it-mapped-to

यह भी सीधे करना संभव है:

    map ^[<RAlt-Left> whatever-vim-keys-you-want-it-mapped-to

हालाँकि, मैंने वह तकनीक ढूंढ ली है जो एक निष्क्रिय टर्मिनल प्रविष्टि का उपयोग अधिक मज़बूती से करने के लिए करती है।

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


क्या यह भी गिम पर लागू होता है?
ग्लिफ़ सेप

मैंने इसे विशेष रूप से उपयोगी पाया है। मैं lxterminal का उपयोग करता हूं और अपनी पूरी कुंजी को vim में मैप करना चाहता हूं। टर्मिनल में, जब मैंने Ctrl-V टाइप किया और फिर मेरी इच्छित कुंजी कॉम्बो (Alt-T, उदाहरण के लिए), यह ^ [t। मैंने मैपिंग ((बेशक [सिंगल एस्केप कैरेक्टर होने का)) करने के लिए <at> के बजाय अपने .vimrc में इसका इस्तेमाल किया और इसने दोषपूर्ण प्रदर्शन किया। (^ [^ T भी Ctrl + Alt + T को सही ढंग से बांधता है)
elynnaie
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.