गनोम-टर्मिनल + विम और Ctrl-Shift मैपिंग


11

क्या गनोम टर्मिनल में Ctrl- के साथ अनुक्रम अनुक्रम करना संभव है Shift?

मैं मैपिंग जोड़ने की कोशिश कर रहा हूं

  • map <C-S-[> gT
  • map <C-S-]> gt

और यह काम नहीं कर रहा है। उसको कैसे करे?

किसी तरह मैंने मैप किया <C-S-]>, लेकिन यह पता चला कि यह नहीं है <C-S-]>, लेकिन <C-]>, ऐसा लगता है कि यह इस क्रम में शिफ्ट को नहीं पहचानता है। यह गलत है या यह सूक्ति-टर्मिनल की गलती है?

के अतिरिक्त। मैपिंग <C-[>, दबाए जाने के बाद, ऐसा लगता है जैसे विम इंतजार कर रहा है। मुझे लगता है कि यह मैपिंग टाइमआउट है, लेकिन जब मैं ठीक से प्रेस करूं तो इस टाइमआउट से कैसे छुटकारा पाऊं <C-[>और मैं कुछ और प्रेस नहीं करना चाहता?

मैंने अभी-अभी सीखना शुरू किया है, इसलिए खेद है कि उस मैपिंग में कुछ स्पष्ट रूप से गलत है।

जवाबों:


8

मुझे लगता है कि यहां समस्या यह है कि आप vim पाने की कोशिश कर रहे हैं, जो एक टर्मिनल में चलने की अपेक्षा करता है, CTRL-SHIFT अनुक्रम को पहचानने के लिए। जबकि X के लिए ऐसे संयोजनों को पहचानना संभव है, जो एक टर्मिनल (या, इन दिनों, एक टर्मिनल एमुलेटर) में चलने वाले अनुप्रयोग नहीं कर सकते हैं। ऐसा इसलिए है, क्योंकि ऐतिहासिक रूप से, टर्मिनल केवल सीरियल कनेक्शन में ASCII डेटा के सात- या आठ-बिट अनुक्रम भेज और प्राप्त कर सकते हैं (हालांकि इसमें "एस्केप सीक्वेंस" शामिल हो सकते हैं जो कर्सर, स्क्रॉल या डिलीट लाइन्स, चेंज कलर और अन्य सहायक होते हैं। प्रभाव)।

ASCII वर्ण सेट में 32 "नियंत्रण कोड" हैं, जिसमें CTRL-Z के माध्यम से परिचित CTRL-A शामिल हैं। लेकिन Z के माध्यम से "CTRL-SHIFT" A के लिए कोई समान ASCII कोड नहीं हैं। अब, गनोम-टर्मिनल ही इन कोड्स को पहचान सकता है (CTRL-SHIFT-V, उदाहरण के लिए, क्लिपबोर्ड से टेक्स्ट पेस्ट करेगा), लेकिन vim नहीं होगा इसका सीधा उपयोग करने में सक्षम है।

बेशक, एक टर्मिनल एमुलेटर के लिए यह संभव हो सकता है (मुझे नहीं पता) CTRL-SHIFT कुंजी प्रेस को एक एस्केप सीक्वेंस में बदलने के लिए सेट किया जा सकता है जिसे तब विम मैपिंग द्वारा पहचाना जा सकता है।

=======

अपडेट करें

आपको gvim में दिलचस्पी हो सकती है, जो vim का एक चित्रमय संस्करण है जो टर्मिनल प्रोग्राम के बजाय X प्रोग्राम के रूप में चलता है। शायद gvim CTRL-SHIFT कोड को समझने में सक्षम होगा?


4

लगता है कि गनोम टर्मिनल के साथ एक समस्या है जो Ctrlकुंजी के साथ कुछ संयोजन की अनुमति नहीं देता है । ऑनलाइन सर्च करने से इसके कई मामले सामने आते हैं।

बस अगर आपको पता नहीं है, तो टैब के माध्यम से Ctrl+ page up/ page downचक्र।


3

जैसा कि बर्गर ने बताया कि यह एक टर्मिनल प्रतिबंध है, क्योंकि vi केकोड्स को समान रूप से देखता है।

टर्मिनलों के लिए जैसे xtermआप उसे बदल सकते हैं। के लिए gnome-terminal जो ध्यान नहीं देता एक्स संसाधनों सेटिंग्स मैं निम्न कार्य पूरे करने को पता नहीं है:

यह SO प्रश्न एक ही विषय को कवर करता है, और यह उदाहरण.Xresources फ़ाइल में कई कुंजियों को मैप करने के लिए उपयोग में दिखाता है । उदाहरण के लिए:

XTerm*vt100.translations: #override \
  Ctrl ~Meta Shift <Key>a: string(0x1b) string("[65;5u") \n\
  Ctrl ~Meta Shift <Key>b: string(0x1b) string("[66;5u") \n\ 
  Ctrl ~Meta Shift <Key>f: string(0x1b) string("[70;5u")  

अब हमारे पास Ctrlaबनाम CtrlShifta, Ctrlbबनाम CtrlShiftb, Ctrlfबनाम में आने वाले विभिन्न प्रमुख अनुक्रम हैं CtrlShiftf

अब हम उन्हें अलग तरीके से मैप कर सकते हैं ~/.vimrc:

map <ESC>[66;5u   :echo "ctrl-shift-b received"<CR>
map <ESC>[70;5u   :echo "ctrl-shift-f received"<CR>
map <C-b>         :echo "ctrl-b received"<CR>
map <C-f>         :echo "ctrl-f received"<CR>

मूल प्रश्न के बारे में था gnome-terminal, जबकि आपकी प्रतिक्रिया को संदर्भित करता है xterm
एग्मोंट

@egmont: अच्छी बात है, और मेरी तरफ से एक नज़र। इस उत्तर के अनुसार .Xresourcesद्वारा अनदेखा किया जाता है gnome-terminal। वह दुर्भाग्यपूर्ण है। अद्यतन उत्तर।
cfi

SuperUser को Q & A जोड़ी के रूप में इस उत्तर को थोड़ा प्रतिरूपित / क्रॉसपोस्ट किया गया , क्योंकि मुझे शायद इसे यहां हटा देना चाहिए क्योंकि यह प्रश्नकर्ता के टर्मिनल पर लागू नहीं होता है।
cfi

1

ऐसा लगता है कि आपको सिर्फ गनोम-टर्मिनल में सभी कीबोर्ड शॉर्टकट को अक्षम करना होगा।


2
कीबोर्ड शॉर्टकट को अक्षम करने में मदद क्यों करता है?
एलियाह कगन

यह मेरे अनुभव से बिल्कुल भी मदद नहीं करता है।
इलियट फोस्टर

1

में gnome-terminalकुंजी द्वारा उत्पन्न भागने दृश्यों विन्यास नहीं हैं। कई चाबी के लिए Ctrl+ keyऔर Shift+ Ctrl+ keyविभिन्न दृश्यों उत्पन्न; दुर्भाग्य से [और ]वे नहीं करते, इसलिए आप उन्हें अलग नहीं कर सकते।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.