Ctrl + बाएँ / दाएँ तीर कुंजी समस्या


25

अंतिम सिस्टम अपडेट के बाद zsh टर्मिनल पर ctrl + left / right arrow कमांड कुछ भी नहीं करता है। इसके अलावा ctrl + u में कुछ गड़बड़ है क्योंकि आमतौर पर वह कमांड कर्सर से लाइन की शुरुआत में मिट जाती है, जबकि अब पूरी लाइन को मिटा देती है .. कोई जानता है कि इन समस्याओं को कैसे हल किया जाए? आप सभी को धन्यवाद।


क्या आपको कोई स्वीकार्य उत्तर मिला है? मुझे लगता है कि गोंकोलो का जवाब बहुत अच्छा है।
लेओ लेपोल्ड हर्ट्ज़ '

जवाबों:


44

FWIW, यह वही है जो मेरे पर्यावरण (rhel5.x) पर zsh के डिफ़ॉल्ट का उपयोग करके काम करता है।

bindkey "^[[1;5C" forward-word
bindkey "^[[1;5D" backward-word

5
^[^[[Dऔर ^[^[[C, क्रमशः, OSX के लिए
जॉन z

1
पुष्टि की, गोंकोलो का प्रस्ताव डेबियन 8.5 में भी काम करता है। मुझे आश्चर्य है कि यह कोड .zshrcडिफ़ॉल्ट रूप से अंतर्निहित क्यों नहीं है ।
लेओ लेपोल्ड हर्ट्ज़ '

Ubuntu Artful में एक आकर्षण की तरह काम करता है, धन्यवाद!
कोनराड गेरूस

अगर कोई भी $terminfoबच के दृश्यों के बजाय उपयोग करना चाहता है : चाबियाँ $terminfo[kLFT5]और $terminfo[kRIT5]मेरे लिए काम किया
ग्रिडो

14

Ctrl + U सबसे अधिक संभावना है क्योंकि आपको लाइन के अंत में कर्सर मिला है। दूसरे, Gentoo के किस संस्करण को आप "अंतिम सिस्टम अपडेट" के रूप में संदर्भित कर रहे हैं?

और आप क्या करना चाहेंगे ctrl + बाएँ / दाएँ करने के लिए?

  • Zsh config में जोड़ें:

bindkey '^[[1;5C' emacs-forward-word
bindkey '^[^[[D' emacs-backward-word

  • और पुराने स्क्रैप से मैंने पाया (मदद कर सकता है):

bindkey ";5C" forward-word
bindkey ";5D" backward-word

  • या इस लिंक पर एक नज़र है , जो आपको मदद करनी चाहिए?

नोट: यदि कॉन्फ़िगरेशन काम करता है, लेकिन माना जाता है कि कुंजी वह नहीं करता है जो आप चाहते हैं, क्योंकि शायद यह है कि कुंजी-परिभाषा आपकी और मेरी से अलग है, तो करें: cat > /dev/null और उन कुंजियों को दबाएं जिन्हें आप आउटपुट करना चाहते हैं और तदनुसार समायोजित करें।


1
"Ctrl + U सबसे अधिक संभावना है क्योंकि आपको लाइन के अंत में कर्सर मिला है" निश्चित रूप से मेरा मतलब है कि जब मेरा कर्सर बीच में है। "और आपको ctrl + left / right to do क्या पसंद आएगा?" आमतौर पर ctrl + बायाँ तीर: बाएँ शब्द को छोड़ना आदि ...
riskio

और आप किस शेल / टर्मिनल का उपयोग कर रहे हैं? Makre सुनिश्चित करें कि आप Emacs का उपयोग करते हैं या जो भी टर्मिनल आप आमतौर पर उपयोग करते हैं और / बिन / बैश? क्या आप स्क्रीन के माध्यम से चल रहे हैं?
टॉर्क्सड

1
कृपया प्रश्न पढ़ें वहाँ है ..
जोखिम 12

1
@ मासी को यकीन नहीं है, मैंने उनसे दो साल पहले जवाब दिया था और हमारे जवाब लगभग समान हैं, मैंने इसे करने के लिए दो अलग-अलग तरीके दिखाए हैं .. और आप उन दोनों को मिला सकते हैं जो उन्होंने लिखा था।
टॉरक्सड डिक्सेस

1
@ मासी सब मुझे पता है कि तब (याद है, 2010-2012 .. यह बहुत समय पहले था) इन दोनों (और यह संयोजन है) ने मेरे लिए कई अलग-अलग प्रणालियों पर काम किया। मैं यूनिक्स और लिनक्स दोनों पर था (और वह Gentoo पर था, एक रोलिंग रिलीज ओएस)। और अभी भी बहुत सारे उदाहरणों पर इसके निशान हैं .. जैसे कि यह भंडार। अब, फिर से, मुझे यकीन नहीं है कि क्यों, लेकिन यह कम से कम दो मशीनों पर काम करता है इसलिए मुझे लगा कि मैं इसे साझा करूंगा। और यकीन है कि उनके और अधिक स्पष्ट है, और मैं उसे सभी वोट पाने के लिए बुरा नहीं है। यह एक विरासत पोस्ट है।
Torxed

5

क्या काम करता है नहीं करता है सीधे distro (Gentoo, डेबियन, RHEL आदि) या खोल (ZSH, KSH, मार) पर निर्भर करती है - यह जो पर निर्भर करता है terminal emulatorप्रयोग किया जाता है, और इसकी सेटिंग: konsole, टर्मिनेटर, urxvt, lx टर्मिनल आदि डिस्ट्रो मायने रख सकता है यदि यह एक अलग मानक शेल कॉन्फिग्रेंस (fx .zshrc) का उपयोग करता है, और यदि एक अलग शेल का उपयोग करते हुए उस डिस्ट्रो पर गोले पहले से ही इसे संभाल सकते हैं।

यहाँ कुछ टर्मिनल एमुलेटर-विशिष्ट समाधान हैं:

urxvt / rxvt-unicode (और शायद अन्य):

bindkey "^[Od" backward-word
bindkey "^[Oc" forward-word

टर्मिनेटर, कोनो कंसोल और एक्सटर्म (और शायद अन्य):

bindkey "^[[1;5D" backward-word
bindkey "^[[1;5C" forward-word

अधिक सामान्य दृष्टिकोण के लिए आप अपना टर्मिनल शुरू करते हैं, CTRL-V दबाएं जिसके बाद आप जिस कुंजी संयोजन से बचना चाहते हैं उसका नाम (नाम) है - इस स्थिति में कुंजी संयोजन CTRL-leftarrow और CTRL-rightarrow - और प्रत्येक के लिए आउटपुट डालें दो उद्धरणों के बीच महत्वपूर्ण संयोजन।


1
क्या आपने CTRL-V सुझाव की कोशिश की? हो सकता है कि आपका टर्मिनल कीस्ट्रोक्स की अलग तरह से व्याख्या करता हो, इसलिए कुंजी को अलग-अलग "प्रतीकों" के लिए बाध्य होना चाहिए?
मलयज

1
मैंने अपना उत्तर अपडेट कर दिया। terminal emulatorप्रयुक्त के आधार पर कई समाधान हैं । डिस्ट्रो या शेल कोई फर्क नहीं पड़ता। शायद यह भी है कि यह .zshrc में क्यों नहीं है, क्योंकि एक टर्मिनल एमुलेटर के लिए जो काम करता है वह दूसरे के लिए काम नहीं करता है। लेकिन वह शायद हल किया जा सकता है अगर zshrc fx। $ TERM पर्यावरण चर को पढ़ें और परिणाम के आधार पर अलग-अलग बिन्दी सेटिंग्स को लागू करें।
मियालिस

2

हल किया।

टर्मिनल का इस्तेमाल किया: कोनसोल

हल करने के लिए: टर्मिनल पर राइट क्लिक करें (या मेनूबार में सेटिंग्स ) -> वर्तमान प्रोफ़ाइल बदलें -> कीबोर्ड मैपिंग -> डिफ़ॉल्ट में बदलें (xfree4)


वास्तव में भी zsh से संबंधित नहीं है, लेकिन निश्चित रूप से, एक फिक्स एक फिक्स है।
टॉर्केड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.