.inputrc TAB अपेक्षा के अनुरूप व्यवहार नहीं कर रहा है


11

मैं आज एक रोल पर हूं, यहां एक और सवाल है:

कैसे आते हैं जब मैं इन में डाल दिया .inputrc, वे दोनों एक ही काम करते हैं?

TAB: menu-complete
Shift-TAB: menu-complete-reverse

यानी वे दोनों जो कुछ भी करते हैं, आखिरी कहते हैं।

जवाबों:


15

Readline नामक एक संशोधक के बारे में कुछ भी नहीं जानता है Shift, और चुपचाप अज्ञात संशोधक नामों की उपेक्षा करता है। कोशिश करो wibble-TAB

Shift+ के लिए एक क्रिया को बांधने के लिए Tab, आपको यह पता लगाना होगा कि आपका टर्मिनल किस एस्केप सीक्वेंस को भेजता है। Bash में, रन catऔर टाइप करें Ctrl+ Vफिर Shift+ Tab। यह भागने के क्रम को शाब्दिक रूप से सम्मिलित करेगा। यह संभावना है कि पहला चरित्र एक भागने चरित्र होगा, जैसा कि दिखाया गया है ^[; अलग-अलग टर्मिनलों में अलग-अलग एस्केप सीक्वेंस होते हैं, लेकिन सामान्य संभावनाएं होती हैं ␛[Z(जैसे बचना, बाएं ब्रैकेट, कैपिटल जेड) और ␛␉(यानी एस्केप, टैब)। कुंजी को उचित रूप से बाँधें ~/.inputrc(जहाँ \eभागने का मतलब है)।

"\e\t": menu-complete-backward
"\e[Z": menu-complete-backward

1
आह, ^[Zमेरे लिए (BASH) काम किया; विस्तृत उत्तर के लिए धन्यवाद! :)
user541686

क्या आप 'कैट' से पहले या बाद में एंटर दबाते हैं? 'बिल्ली ’की आवश्यकता क्यों है? मुझे लगता है कि to कैट ’के बिना भी वही एस्केप सीक्वेंस मिलेंगे।
dougkramer

@ douglas.kramer रनिंग catकिसी भी बैश बंधन से बचा जाता है। आमतौर पर बैश में अगले अक्षर को डालने के लिए एक ही Ctrl + V बाइंडिंग होता है, ताकि उसे कोई फर्क न पड़े।
गिल्स एसओ- बुराई को रोकना '

मुझे 'शेल-एक्सपेंशन-कमांड' में बाँधने के लिए Shift + Tab होने में दिक्कत हो रही है। मुझे मिलता है: $ cat <Enter> <Shift+Tab>जो प्रदर्शित करता है ^[[Z क्या मैं हमेशा \eउस अनुक्रम से आगे जोड़ता हूं जो मुझे मिलता है Ctrl+V? क्या यह इसका अनुवाद करता है:"\e^[[Z": shell-expand-command
dougkramer

@dou की जगह ^[`\ e`
गाइल्स '

4

Xubuntu 16.04 पर, टर्मिनल: xfce4- टर्मिनल 0.6.3, शेल: बैश

के लिए Shift+ Tabकाम करने के लिए मैं का इस्तेमाल किया था:

bind '"\e[Z": menu-complete-backward'

में ~/.bash_profileउपयोग: bind TAB:menu-completeऔर bind '"\e[Z": menu-complete-backward'(सिंगल और डबल उद्धरण का उपयोग ध्यान दें!)।
एरिक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.