PuTTY और स्क्रीन के साथ ctrl-arrow कुंजियों का उपयोग करना


33

मैंने खोज की और कहीं भी इसके लिए कोई समाधान नहीं खोज सका। मैं विभिन्न सर्वरों से कनेक्ट करने के लिए Windows से PuTTY का उपयोग कर रहा हूं जहां मैं बैश और स्क्रीन चलाता हूं। ऐसा लगता है कि कमांड लाइन पर वर्ड-टू-वर्ड कूदने के लिए ctrl-arrow कुंजियों के साथ bash ठीक काम करता है लेकिन स्क्रीन के भीतर यह काम नहीं कर रहा है। स्क्रीन में नहीं, ctrl-left भेजता है "^ [OC और ctrl-right है" ^ [OD]। स्क्रीन के भीतर मुझे इसके बजाय "^ [[C" और "^ [[D" मिलता है, जो सिर्फ कोड के लिए प्रतीत होता है। PuTTY का उपयोग करते समय ctrl-arrow कुंजियों को पहचानने के लिए स्क्रीन पाने का कोई तरीका है। (FYI करें, मुझे यह समस्या याद नहीं है जब PuTTY के बजाय लिनक्स में gnu- टर्मिनल का उपयोग करते हुए)।

अद्यतन: ऐसा प्रतीत होता है कि PuTTY समस्या है क्योंकि यह भागने के कोड नहीं भेज रही है जो इसके लिए आवश्यक हैं। मैं अभी के लिए दे रहा हूं और सिग्विन + मिनिटेट का उपयोग कर रहा हूं।


वाह, मिनिटेट महान है - पिछले कुछ समय से विंडोज के लिए एक सभ्य टर्मिनल एमुलेटर की तलाश कर रहे हैं। उसके लिए धन्यवाद।
blueyed

हालाँकि, मुझे ^[[1;5ACtrl-Up के लिए मिल रहा है , जो कि अधिक सही प्रतीत होता है, code.google.com/p/mintty/wiki/Keycodes#Cursor_keys के
ब्लू 25

जवाबों:


13

संपादित करें:

यहाँ मेरे लिए क्या काम किया गया है:

  • स्क्रीन के ओवरराइड करने पर मेरे ~/.bashrcसेट TERM=xterm(मेरा होता है TERM=xterm-256colors)TERM=screen
  • मैंने PuTTY> Terminal> Features> चेक करने के लिए एप्लिकेशन कर्सर कुंजी अक्षम करें सेट किया
  • मैं tput smkxबैश प्रॉम्प्ट पर दर्ज करता हूं
  • अब Ctrl-Arrow कुंजियाँ शब्द-दर-शब्द कूद जाती हैं

  • सूचना के प्रयोजनों के लिए, अगर मैं करता
    tput smkx | hexdump -c
    हूं : मुझे मिलता है
    0000000 033 [ ? 1 h 033 =
    और
    tput rmkx | hexdump -c
    मुझे देता है
    0000000 033 [ ? 1 l 033 >

मुझे लगता है कि कुछ बेहतर तरीके से इसे फिर से तैयार करने का एक तरीका है, लेकिन यह वही है जो मुझे अभी तक मिला है और यह काम करने लगता है।

मूल उत्तर:

से info screen:

`स्क्रीन 'सत्र में प्रत्येक विंडो कुछ अतिरिक्त कार्यों के साथ VT100 टर्मिनल का अनुकरण करती है। VT100 एमुलेटर हार्ड-कोडेड है, कोई अन्य टर्मिनल प्रकार का अनुकरण नहीं किया जा सकता है।

और VT100 के पास Ctrl-Arrow कीकोड नहीं हैं।


set -o vi(यदि आप उस प्रकार के व्यक्ति हैं :)
मिकीबी

1
@ मायकेबी: यह कैसे मदद करता है (यह वैसे नहीं है)?
अगली सूचना तक रोक दिया गया।

धन्यवाद। वह उत्तर नहीं जिसके लिए मैं उम्मीद कर रहा था, लेकिन अब मैं इस सीमा के साथ आगे बढ़ सकता हूं और एक अन्य कुंजी बंधन का उपयोग कर सकता हूं।
kbosak

1
@ डेनिस: ठीक है, यह आपको आगे / पीछे से निपटने का एक और तरीका देता है यदि आप उस व्यक्ति का टाइपो हैं जो इसके चारों ओर अपना सिर लपेट सकता है। set -o vivi कमांड-लाइन मोड को चालू करता है ताकि आप हिट कर सकें ESCऔर अपनी कमांड लाइन को संपादित करने के लिए vi कुंजियों का उपयोग कर सकें ।
मिकीबी

1
@kbosak: मैं उस जवाब से खुश नहीं हूं। इसलिए मैंने इसे ठीक किया । :-)
अगली सूचना तक रोक दिया गया।

23

जैसा कि यहाँ बताया गया है , u ~ / .inputrc में डाल सकते हैं:

"\eOD": backward-word
"\eOC": forward-word

इसने मेरे लिए काम किया।


5
यह मेरे लिए काम किया और स्वीकृत उत्तर की तुलना में कहीं अधिक आसान था।
पेट्रस थेरॉन

इसने मेरे लिए भी काम किया, जबकि स्वीकृत जवाब नहीं था
शियाविनी

+1 सक्सेस जवाब जो सिर्फ काम करता है।
एडम कैविनेस

3
$include /etc/inputrcअपनी .inputrcफ़ाइल के शीर्ष पर होना सुनिश्चित करें , अन्यथा सिस्टम-वाइड बाइंडिंग को रीडलाइन नहीं पढ़ेगी, और होम और एंड जैसी कुंजी टूट जाएगी।
जेम्स

1
यह स्वीकृत उत्तर होना चाहिए!
शैलेन

4

मुझे कुछ आश्चर्य हुआ कि आपने स्क्रीन का उपयोग किए बिना भी सही ढंग से ctrl-arrowkeys भेजने के लिए पुट्टी को प्राप्त किया, क्योंकि उसने मेरे लिए कभी काम नहीं किया। मेरा समाधान ऊंचाई-एरोकी (मेटा-एरोकी) का उपयोग करने के लिए स्विच करना था, जो मेरा मानना ​​है कि डिफ़ॉल्ट रूप से एक ही फॉरवर्ड-वर्ड / बैकवर्ड-वर्ड बाइश में बाइंडिंग है, हालांकि मुझे उन्हें पहचानने के लिए zsh के लिए कुछ अतिरिक्त कमांड जारी करना था।

bindkey "^ [^ [[सी" फॉरवर्ड-शब्द # मेटा-राइटअरो
bindkey "^ [^ [[[डी" पिछड़ा-शब्द # मेटा-लेफ्टअरो

मैं इस मार्ग पर भी जा सकता हूं। बाईं ctrl कुंजी मेटा या ऑल्ट कीज़ (कम से कम मेरे कीबोर्ड पर) की तुलना में हिट करना बहुत आसान है। ओह अच्छा।
kbosak

4

यदि मैं इस पुराने प्रश्न को हल करता हूं, जैसा कि मैंने किया है, तो एक और हालिया समाधान:

Ctrl और तीर कुंजियाँ पोटीन में काम नहीं करती हैं! मैं क्या करूं?

पोटीन ctrl पर कर्सर कुंजी मोड की भावना को प्रभावित करता है, जो ठीक से पता लगाने के लिए tmux के लिए थोड़ा कठिन है। Ctrl कुंजियों को ठीक से प्राप्त करने के लिए, टर्मऑफ़ सेटिंग्स बदलें ताकि kUP5 (Ctrl-Up आदि) समायोजित संस्करण हों, और smkx / rmkx को अक्षम करें ताकि tmux मोड को न बदले। उदाहरण के लिए इस लाइन के साथ .tmux.conf (यह मानते हुए कि आपके पास xterm पर TERM सेट है):

सेट-टर्मिनल टर्मिनल-ओवरराइड्स "xterm *: kLFT5 = \ eOD: kRIT5 = \ eOC: kUP5 = \ eOA: kDN5 = \ eOB: smkx @: rmxx"

ध्यान दें कि यह केवल tmux 1.2 और इसके बाद के संस्करण में काम करेगा।

http://stuff.mit.edu/afs/athena/project/bsd/src/tmux-1.3/FAQ


0

यदि आप डीबग / कॉन्फ़िगर करना चाहते हैं, तो आपको टर्मो, एनसीआरसी, स्क्रीन और पोटीन के प्रलेखन पर ध्यान देना चाहिए। इसके अलावा बैश शॉर्टकट को इनपुट आर्क से कॉन्फ़िगर किया जा सकता है। बैश के आदमी पृष्ठों में देखें और inputrc के लिए खोजें।


मुझे नहीं लगता कि इनपुट इनपुट में क्या संभावना है। मैंने पहले से ही कई संभावित समाधानों की कोशिश की है, जिसमें बिना किसी सफलता के साथ इनपुट आर्क में प्रविष्टियां शामिल हैं। फिर, ऐसा प्रतीत होता है कि गलत कोड को ctrl-arrow कुंजी के लिए स्क्रीन पर भेजा जा रहा है। मैं इस पर पहले से ही ज्यादा समय नहीं बिताना चाहता क्योंकि मेरे पास वास्तव में यह सिर्फ एक छोटी सी असुविधा है।
kbosak 16

0

क्या आपके पास पुट्टी में सही चरित्र एन्कोडिंग है? यदि आप UTF-8 में एक सर्वर से कनेक्ट करते हैं और आपकी पोटीन मानक चारसेट में है, तो विम में, तीर कुंजियाँ लिखी जाती हैं। यदि पुट्टी UTF-8 में है, तो आप अपने कर्सर को स्थानांतरित कर सकते हैं। शायद आपके मामले में भी ऐसा ही हो ...


यह एक vi / vim समस्या बिल्कुल भी नहीं है और मैंने केवल वर्ण सेट के लिए PuTTY में एक विकल्प देखा, जिसने मदद नहीं की।
kbosak

टर्मिनल-> कीबोर्ड-> फ़ंक्शन कुंजियों और कीपैड में विभिन्न विकल्पों का प्रयास करें। BTW, मेरे लिए Ctrl-Arrow किसी भी तरह से काम नहीं करता है, यह Ctrl को दबाए बिना वैसा ही करता है।
प्रो। मोरियार्टी

हाँ, मैंने बिना किसी भाग्य के कई विकल्पों और विकल्पों के संयोजन की कोशिश की है। FYI करें, कुछ प्रविष्टियाँ हैं, जिन्हें आप bash में ctrl-arrow कीज़ के साथ मदद करने के लिए inputrc में डाल सकते हैं, लेकिन स्क्रीन का उपयोग करते समय वे मदद नहीं करते हैं।
kbosak

0

टर्मिनल -> सुविधाओं के तहत आपके पोटीन कॉन्फ़िगरेशन में, कुछ "अक्षम" चेकबॉक्स हैं। आप एप्लिकेशन कर्सर कुंजी या एप्लिकेशन कीपैड मोड को अक्षम करने का प्रयास करना चाह सकते हैं - कभी-कभी पोटीन "बहुत स्मार्ट" होने की कोशिश करता है और नियंत्रण वर्ण भेजता है जो सर्वर के साथ संगत नहीं हैं।


0

मैं टर्मिनल> कीबोर्ड> फंक्शन कीज़> Xterm R6 का उपयोग कर रहा हूँ, जो कि htop (f4 सर्च आदि) फंक्शन कीज़ को उम्मीद के मुताबिक काम करने में मदद करता है।

मुझे पता चला है कि CTRL + एरो का उपयोग करने के बजाय, ALT + एरो शब्दों के बजाय कूदता है।

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