बैश स्वतः पूर्ण: पहले सूची फ़ाइलों को फिर उनके माध्यम से चक्रित करें


27

क्या बैश को इस तरह से कॉन्फ़िगर करना संभव है कि पहले टैब पर स्वत: पूर्ण होने पर यह सभी संभावित फ़ाइलों को सूचीबद्ध करता है और बाद के विकल्पों के माध्यम से साइकिल पर?

दोनों विकल्पों को अलग-अलग करना आसान है और मैं उन्हें अलग-अलग कुंजी से बांध सकता हूं, लेकिन ऊपर सही होगा, लेकिन मैं नेट पर इसके बारे में कुछ भी नहीं पा सकता हूं।


3
जब से मैंने ZSH का उपयोग किया है, तब से कुछ समय हो गया है, लेकिन मुझे विश्वास है कि इस तरह से इसके स्वत: पूर्ण कार्य हैं।
जोर्डम 18

1
@ जोर्डनम वेल एक विकल्प की तरह लगता है अगर कुछ और काम नहीं करता है, लेकिन यह सब कुछ .bashrc, आदि से लेकर ZSH समकक्षों तक अपडेट करने की कोशिश करेगा, जिससे मैं बचना चाहूंगा।
वू

जवाबों:


31

यह वही है जो आप चाहते हैं:

bind "TAB:menu-complete"
bind "set show-all-if-ambiguous on"

1
लगभग सही, छोटे दोष के अलावा कि यह पहले टैब पर भी स्वत: पूर्णता देता है, जो थोड़ा कष्टप्रद हो सकता है अगर मैं सिर्फ सटीक नाम पता लगाने की कोशिश कर रहा हूं (यदि मुझे करना है तो मुझे बहुत अधिक वर्ण हटाना होगा। तब परिवर्तन), लेकिन मैं उसके साथ रहने के लिए काफी इच्छुक हूं।
वू

1
इसे आसानी से पूर्ववत कैसे किया जा सकता है?
डिंगलपदम

1
bind "TAB:complete"; bind "set show-all-if-ambiguous off"
जिम पेरिस

13
@ तीसरी पंक्ति जोड़ें, bind "set menu-complete-display-prefix on"केवल ऑटो-पूरा किए बिना पहले टैब पर उम्मीदवारों को सूचीबद्ध करेंगे।
नैत्री

2
@Naitree आपके सुझाव को पर्याप्त नहीं बना सकता है। यह काम करता है और आईएस है, इसलिए डिफ़ॉल्ट बैश व्यवहार से बहुत बेहतर है। धन्यवाद।
जेबीरियर

1

यही है वह जो मेरे द्वारा उपयोग किया जाता है। जहाँ तक मैं बता सकता हूँ यह वही करता है जो आप चाहते हैं।

# make tab cycle through commands after listing
bind '"\t":menu-complete'
bind "set show-all-if-ambiguous on"
bind "set completion-ignore-case on"
bind "set menu-complete-display-prefix on"

यह मैक (10.13 और 10.14) और उबंटू (16.04 और 18.04) पर काम करता है।


0

क्या तुमने विचार किया है? यह सुपरसुअर में संदर्भित किया गया था ...

[[ $- = *i* ]] && bind TAB:menu-complete

1
menu-completeसवाल क्या पूछ रहा है इसका केवल आधा हिस्सा है। जैसा कि सवाल कहता है, "[ख] अलग विकल्प करना आसान है"
jw013

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