कैसे zash को बैश की तरह पूरा करें


2

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

Mydata.txt
YourData.txt

यदि मैं टाइप करता हूं vim, तो एक रिक्त, फिर दबाएं tab, यह Mydata.txtकेवल उन्हें सूचीबद्ध करने के बजाय ऑटो से भरेगा और मेरे इनपुट की प्रतीक्षा करेगा। मैं फ़ाइलों को चुनने के लिए टैब को दबाए रखना पसंद नहीं करता। कुछ अक्षरों को दबाना ज्यादा आसान है।

मैंने .zshrc और सेट को संशोधित करने का प्रयास किया है

unsetopt MENU_COMPLETE

लेकिन, यह काम नहीं करता है।

क्या कोई मुझे कुछ संकेत दे सकता है?

जवाबों:


4

संदर्भ के लिए, और जैसा कि मुझे पूरी तरह से यकीन नहीं है, bashवास्तव में कैसे व्यवहार करता है, मैं पीटर स्टीफेंसन द्वारा वर्तमान शेल के जेड-शेल के लिए एक उपयोगकर्ता के गाइड से उद्धरण करता हूं zsh

6.2.1 अस्पष्ट पूर्णताएं

विकल्पों का सबसे बड़ा समूह तब होता है जब पूरा होने के दौरान अस्पष्ट होता है, दूसरे शब्दों में एक से अधिक संभावित समापन होते हैं। सात प्रासंगिक विकल्प निम्नानुसार हैं, जिन्हें एफएक्यू से कॉपी किया गया है; कई अलग-अलग संयोजन संभव हैं:

  • NO_BEEP सेट के साथ , कि कष्टप्रद बीप दूर हो जाती है,
  • NO_LIST_BEEP के साथ , बीपिंग केवल अस्पष्ट पूर्णताओं के लिए बंद कर दिया जाता है,
  • AUTO_LIST सेट के साथ , जब पूरा होना अस्पष्ट हो, तो आपको टाइप किए बिना एक सूची मिल जाएगी CTRL+D,
  • BASH_AUTO_LIST सेट के साथ , सूची केवल दूसरी बार आपके द्वारा अस्पष्ट पूर्णता पर टैब हिट करने पर होती है,
  • LIST_AMBIGUOUS के साथ , इसे संशोधित किया गया है ताकि कुछ भी सूचीबद्ध न हो अगर कोई अस्पष्ट उपसर्ग या प्रत्यय डाला जा सके - इसे BASH_AUTO_LIST के साथ जोड़ा जा सकता है , ताकि जहां दोनों लागू हों, उन्हें सूचीकरण के लिए तीन बार हिट करने की आवश्यकता हो,
  • REC_EXACT के साथ , यदि कमांड लाइन पर स्ट्रिंग ठीक से एक संभव पूर्णता से मेल खाती है, तो यह स्वीकार किया जाता है, भले ही एक और पूर्णता हो (यानी उस स्ट्रिंग को किसी और चीज के साथ जोड़ा गया) जो भी मेल खाता है,
  • MENU_COMPLETE सेट के साथ , एक पूर्णता हमेशा पूरी तरह से सम्मिलित की जाती है, फिर जब आप TABइसे हिट करते हैं तो अगले में बदल जाता है, और इसी तरह जब तक आप वापस वहां नहीं पहुंच जाते हैं जहां से आपने शुरू किया था,
  • AUTO_MENU के साथ , आप केवल मेनू व्यवहार प्राप्त करते हैं जब आप अस्पष्ट पूरा होने पर TAB को फिर से हिट करते हैं।

आप शायद उपयोग करना चाहते हैं (लेकिन जैसा कि मैंने कहा कि मुझे यकीन नहीं है, कृपया मुझे सुधारने के लिए स्वतंत्र महसूस करें)

setopt BEEP NO_AUTOLIST BASH_AUTOLIST NO_MENUCOMPLETE

कहाँ setopt NO_OPTIONके बराबर है unset OPTION


सही उत्तर - मैंने विभिन्न सेटिंग्स के विवरण की सराहना की। वर्णन के साथ प्रत्येक को सक्षम या अक्षम करने के माध्यम से कदम रखने से यह मेरे लिए बहुत स्पष्ट हो गया कि क्या बदलने की आवश्यकता थी और क्यों।
सिंथेसाइजरपेटेल

2

मुझे खुद से जवाब मिला। अगर मैं सेट करता हूं

zstyle ': पूरा होने: : : *: डिफ़ॉल्ट' मेनू कोई चयन

फिर मैं स्वतः पूर्ण विकल्पों का चयन करने के लिए वर्णों का इनपुट कर सकता हूं। हालांकि, मैं सूची से चयन नहीं कर सकता।


0

मैं उपयोग करता हूं

 setopt autolist

क्या यह वही है जो आप चाहते हैं?


धन्यवाद, जेन्स, मैंने "सेटटॉप ऑटो सूची, अनसेट एमएनईयूओसीपीएलईटीईई" का उपयोग किया, लेकिन, यह काम नहीं करता है।
HXGuo
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.