मैं कैसे zsh को पूरा करने की तरह bash को पूरा करता हूं?


18

मैं बैश से zsh में हाल ही में परिवर्तित हुआ हूं (जो मैं "ओह माई ज़श" का उपयोग कर रहा हूं), लेकिन एक बात मुझे गुस्सा दिलाती है:

जब मैं टैब कुंजी को हिट करता हूं, तो पहला ऑटोोकम्पशन स्वचालित रूप से भर जाता है, और आपको बार-बार टैब मारकर पूर्णताओं के माध्यम से चक्र करने की आवश्यकता होती है।

यह बैश से भिन्न होता है, जहां आपको केवल पूर्णताओं की एक सूची दिखाई जाती है। यदि सभी पूर्णताओं में एक ही उपसर्ग होता है, तो यह उपसर्ग बाहर भर जाता है। आप जिस प्रकार को जारी रखना चाहते हैं उसे चुन सकते हैं।

मुझे बाद वाला बेहतर लगता है क्योंकि यह टाइप करने के लिए तेजी से है, बार-बार टैब मारकर एक पूरा करने का चयन करने के लिए।

क्या zsh को पूरा करने का कोई तरीका है, जो इस संबंध में अधिक बकवास है?

जवाबों:


19
setopt noautomenu
setopt nomenucomplete

आपको दोनों की जरूरत है। यदि आप टैब को पर्याप्त बार हिट करते हैं, तो आपको पूर्णता की सूची मिल जाएगी, लेकिन आपने अब तक जो भी टाइप किया है, उसमें कोई भी वर्ण नहीं जोड़ा जाएगा।


5

मुझे नहीं लगता कि यह डिफ़ॉल्ट व्यवहार है, लेकिन आप इसका उपयोग करके इसे बंद कर सकते हैं:

setopt +o menucomplete

अन्य सेटिंग्स है कि अलग अलग तरीकों से इस व्यवहार को प्रभावित शामिल हैं: autolist, automenu, bashautolist, listambiguous। विवरण के लिए "पूर्णता" अनुभाग man zshoptionsदेखें। आप इस कमांड को अपनी ~/.zshrcफाइल में जोड़ सकते हैं ।

आप कई अन्य चीजों को अंतःक्रियात्मक रूप से कॉन्फ़िगर कर सकते हैं:

autoload -U compinstall
compinstall

और संकेतों और मेनू के बाद।

बैश में, इस व्यवहार बाध्यकारी द्वारा नियंत्रित किया जाता Tabकरने के लिए completeया menu-completeमें ~/.inputrc:

"\C-i": complete   # do list completion

या शेल प्रॉम्प्ट से या ~/.bashrc:

bind '"\C-i": menu-complete' # do menu completion

1
मेटा टिप्पणी: आपको "टैब" का चरित्र कैसा लगा?
अच्छा व्यक्ति

2
@ गुड पर्सन:<kbd>Tab</kbd>
अगली सूचना तक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.