टर्मिनल स्वतः पूर्ण: सुझावों के माध्यम से चक्र


37

मेरे पास यह उबंटू सेटअप पर था और जब से मैंने फेडोरा में स्विच किया है मैं इसे सेट करना चाहता हूं और मैं भूल गया कि कैसे ... विचार सरल है:

मैं नहीं चाहता कि टर्मिनल मुझे डबल होने पर सुझाव दिखाए tab, इसके बजाय मैं चाहता हूं कि वह प्रत्येक प्रेस पर हर संभव सुझाव के माध्यम से साइकिल tabचलाए ... यह विम में भी किया जा सकता है।

इसलिए जब मैं टाइप करता हूं gedit aऔर tabइसे दबाता हूं तो यह मुझे हर फाइल को पहले अक्षर के साथ दिखाएगा a


जवाबों:


51

यह वास्तव में एक रीडलाइन सुविधा है जिसे कहा जाता है menu-complete। आप इसे completeचलाकर टैब (डिफ़ॉल्ट की जगह ) पर बांध सकते हैं :

bind TAB:menu-complete

आप शायद उसे अपने साथ जोड़ना चाहते हैं ~/.bashrc। वैकल्पिक रूप से, आप इसे सभी रीडलाइन पूर्णताओं के लिए कॉन्फ़िगर कर सकते हैं (न कि केवल बैश में) ~/.inputrc

आप यह भी पा सकते हैं bind -p(वर्तमान बाइंडिंग दिखाएं, ध्यान दें कि टैब के रूप में दिखाता है "\C-i") और bind -l(सभी कार्यों को सूचीबद्ध करता है) उपयोगी है, साथ ही बैश मैनुअल के लाइन संपादन अनुभाग और रीडलाइन के दस्तावेज़ भी


3
@vanjadjurdjevic: ज़रूर, बस उन्हें अलग-अलग कुंजी से बांधें।
derobert

4
menu-completeशांत है, लेकिन यह सभी संभावित सुझावों की सूची को छुपाता है?
Ciro Santilli 新疆 h h h

2
@CiroSantilli 六四 事件 ill ill ill also मैं भी रीडलाइन आधारित गोले में इस सुविधा को पसंद करता हूं। वर्तमान में इसे करने का zsh तरीका बहुत अच्छा है: टैब का पहला हिट सभी संभावनाओं को दर्शाता है, टैब का दूसरा हिट पूरा होने वाले आइटम को साइकिल चलाना शुरू करता है।
xuhdev

1
चलो आप दिखावा कर रहे हैं cdऔर menu-completeनिर्देशिकाओं पर साइकिल चला रहे हैं । उस निर्देशिका को "पिक" करने के लिए आप किस कुंजी को दबाते हैं और उस निर्देशिका की सामग्री को साइकल चलाना शुरू करते हैं? क्या कोई दूसरी चीज़ है / सेट?
टोनी

1
@ हाँ, इसे सम्मिलित करेंगे। लेकिन अगर आप फ़ॉरवर्ड स्लैश का उपयोग करते हैं, तो यह ठीक है- जैसे पथ " /usr/local//" अभी भी पूरी तरह से मान्य है, और मेनू-पूर्ण चीजों को अंदर करना शुरू कर देगा /usr/local
derobert

6

आप बैश में पूरा होने वाले मेनू के माध्यम से साइकिल चला सकते हैं, और आप आइटम का मेनू भी दिखा सकते हैं। Zsh के विपरीत, वर्तमान मेनू आइटम हाइलाइट नहीं किया जाएगा।

इसमें जोड़ें ~/.inputrc:

set show-all-if-ambiguous on
set show-all-if-unmodified on
set menu-complete-display-prefix on
"\t": menu-complete
"\e[Z": menu-complete-backward

से प्रलेखन man bash:

Readline Variables
    menu-complete-display-prefix (Off)
           If set to On, menu completion displays the common prefix of the
           list of possible completions (which may be empty) before cycling
           through the list.
    show-all-if-ambiguous (Off)
           This alters the default behavior of the completion functions. If
           set to On, words which have more than one possible completion
           cause the matches to be listed immediately instead of ringing
           the bell.
    show-all-if-unmodified (Off)
           This alters the default behavior of the completion functions in
           a fashion similar to show-all-if-ambiguous. If set to On, words
           which have more than one possible completion without any
           possible partial completion (the possible completions don't
           share a common prefix) cause the matches to be listed
           immediately instead of ringing the bell.

Completing
    menu-complete
          Similar to complete, but replaces the word to be completed with
          a single match from the list of possible completions. Repeated
          execution of menu-complete steps through the list of possible
          completions, inserting each match in turn. At the end of the list
          of completions, the bell is rung (subject to the setting of
          bell-style) and the original text is restored. An argument of
          n moves n positions forward in the list of matches; a negative
          argument may be used to move backward through the list. This
          command is intended to be bound to TAB, but is unbound by
          default.
    menu-complete-backward
          Identical to menu-complete, but moves backward through the list
          of possible completions, as if menu-complete had been given
          a negative argument. This command is unbound by default.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.