शब्दों / तारों के बीच कर्सर ले जाने के लिए CTRL को बैश करें


85

मैं CTRLबाएँ और दाएँ तीर कुंजियों का उपयोग करते समय तेज़ी से आगे बढ़ने के लिए कुंजी का उपयोग करने के लिए उपयोग कर रहा हूं (एक समय में एक चार के बजाय एक शब्द के अंत में जाता है)।

क्या मैं ऐसा किसी भी तरह से कर सकता हूं?

मैं शायद इसे कोड कर सकता था, लेकिन मैं सोच रहा था कि क्या कुछ आसान / पहले से ही है।

जवाबों:


94

डिफ़ॉल्ट रीडलाइन कुंजी बाइंडिंग के साथ, ALT+ Bएक शब्द वापस जाता है, ALT+ Fएक शब्द आगे जाता है।

डिफ़ॉल्ट Ubuntu सेटअप अतिरिक्त रूप से CTRL+ तीर प्रदान करता है जैसे आप उपयोग करते हैं। ये /etc/inputrcनिम्नानुसार हैं और निर्दिष्ट हैं:

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

निश्चित नहीं कि हमें उनमें से तीन की आवश्यकता क्यों है ...


20
@bryan_ruiz: विभिन्न कीबोर्ड (टर्मिनल एमुलेटर, आदि) अलग-अलग अनुक्रम का उत्पादन करते हैं। अनुक्रम को देखने के लिए Ctrl-v दबाएं फिर कुंजी। मेरे लिए PuTTY में, Ctrl-v Ctrl-RightArrow मुझे देता है ^[OCजो कि आपके जैसा ही है। इसमें xtermमुझे ^[[1;5वही मिलता है जो थॉमस जैसा ही है। '
अगली सूचना तक रोक दिया गया।

7
इसके ~/.inputrcबजाय संपादन के द्वारा ऐसा करना बेहतर होगा
svassr

1
मैं विश्वास नहीं कर सकता कि मैं इसके बिना कितनी देर तक रहता था।
रयान शिलिंग्टन

3
संपादन ~ / .inputrc 'सिस्टम' को एक (/ etc / inputrc) लोड होने से रोक सकता है। यह भी ध्यान दें, 'सेट -ओ' सेटिंग्स - "सेट -ओ एमएसीएस" आपको कमांड लाइन पर इमैक स्टाइल की प्रमुख बाइंडिंग देनी चाहिए, उदाहरण के लिए "सेट -o vi" के विपरीत (ऐसा करने के बाद आपको प्रेस करना होगा डब्ल्यू या बी का उपयोग करने से पहले ईएससी)।
डेविड गुडविन

4
@DavidGoodwin कुछ खोज के बाद, $include /etc/inputrcसिस्टम इनपुट आर्क फ़ाइल को भी लोड करेगा।
सरगुय

42

जैसा कि थॉमस ने समझाया, आप बाइंडिंग को जोड़ सकते हैं /etc/inputrc

एक और विकल्प तो यह हर बार जब आप लॉग इन करते हैं, तो उन्हें ~/.bashrc इस तरह से डाल रहा है :

#use ctl keys to move forward and back in words
bind '"\eOC":forward-word'
bind '"\eOD":backward-word'

मैंने सीखा कि आप cat > /dev/null अपने कीबोर्ड को भेजने वाले पात्रों को देखने के लिए उपयोग कर सकते हैं , उदाहरण के लिए, CTRL + दायाँ तीर दिखाता है:

^[OC

जहां ^[जैसा है वैसा ही \e कोड में bindकमांड से आता है ।

आप इस तरह से बाइंडिंग भी देख सकते हैं:

bind -p | grep forward-word

यह सब बहुत भयानक है और मुझे खुशी है कि मुझे बैश की कुछ और शक्ति का पता चला।


6
मुझे लगता है कि यह केवल बैश को प्रभावित करेगा, जबकि inputrcसमाधान अन्य कार्यक्रमों पर भी लागू होगा जो रीडलाइन का उपयोग करते हैं, उदाहरण के लिए पायथन दुभाषिया, अधिकांश अन्य गोले। ध्यान दें कि ~/.inputrcयदि आपके पास रूट नहीं है, तो आप कमांड भी डाल सकते हैं , या उन्हें सभी उपयोगकर्ताओं पर लागू नहीं करना चाहते हैं।
थॉमस

जो भी कारण के लिए यह केवल मेरे लिए काम किया जब मैं ऊपर अपनी लाइनों के क्रम स्वैप। आगे ध्यान दें। मैं विंडोज 8.1 से पोटीन के पीछे Ubuntu 14.04LTS का उपयोग कर रहा हूं।
रेबेका डेसोनविले

2
+1 विशेषकर के लिए I learned that you can use cat > /dev/null to look at the characters that your keyboard is sending। #TIL
Sungam

3
तुम भी बस टाइप readऔर हिट दर्ज कर सकते हैं के रूप में एक ही प्रभाव को प्राप्त करने के लिए cat > /dev/null। मैं आलसी हूं इसलिए मुझे कम टाइपिंग वाले समाधान पसंद हैं। :)
theglossy1

ctrl + 4 मेरी बिल्ली को क्रैश करता है (यह ^ भेजता है /)
user1040495

4

आपके होम डायरेक्टरी में .inputrc, Ubuntu (उदाहरण के लिए) पर काम करना बंद करने के लिए ctrl + left का कारण बनेगा।

सब कुछ काम करने के लिए, निम्नलिखित को ~ / .inputrc में जोड़ें:

# Include system-wide inputrc, which is ignored by default when
# a user has their own .inputrc file.
$include /etc/inputrc

f.kowal को श्रेय

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