बाश आटो की तरह निरुपित


28

मैं बैश का उपयोग कर रहा हूं, लेकिन मैं zsh शैली को स्वतः पूर्ण करना चाहता हूं (आपने टैब को हिट किया है और यह संभावनाओं के माध्यम से टैब करता है), बजाय इसके कि क्या बैश लगता है, जो संभावनाओं की एक सूची प्रदर्शित करता है लेकिन जब तक मैं कुछ भी नहीं चुनता हूं कुछ और करना। मैं बाश में zsh प्रकार का व्यवहार कैसे प्राप्त कर सकता हूं?

एक समाधान के लिए खोज करने से अन्य प्रश्नों के बहुत सारे उत्तर हो गए हैं, इसलिए मैं उम्मीद कर रहा हूं कि मैं यहां एक सरल उत्तर प्राप्त कर सकता हूं (अर्थात मेरे लिए क्या पेस्ट करें .bashrc)।

(और स्पष्ट प्रश्न का उत्तर देने के लिए, मुझे यहां बैश का उपयोग करने की आवश्यकता है क्योंकि मैं सिर्फ एक टीम में शामिल हो गया हूं और वे काम करने के लिए वातावरण को आसान बनाने के लिए बैश स्थापित करने के लिए कुछ सामान करते हैं। मैं अंततः यह सुनिश्चित कर सकता हूं कि मेरे पास यह काम करना है। zsh में रास्ता, लेकिन अब के लिए यह आसान है अगर मैं bash का उपयोग करता हूं और बस इसे इंटरैक्टिव उपयोग के दौरान zsh की तरह अधिक व्यवहार करता हूं।)

जवाबों:


22

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

bind 'TAB:menu-complete'

इसे प्राप्त करने के लिए


11
जब मैं इसे अपने .bashrc में जोड़ता हूं, तो टर्मिनल में सूचीबद्ध करने के बजाय संभावित विकल्पों के माध्यम से टैब चक्र। क्या दोनों व्यवहारों को प्राप्त करना संभव है?
एंटोनियोस हेजजियोर्गालिस

Shitf-Tabपीछे की ओर पूरा करने के लिए, का उपयोग करें bind '"\e[Z":menu-complete-backward'
ऑइनर-जी

24

पहली पूर्णता और एक सूची प्राप्त करने के लिए आप निम्नलिखित को bashrc में जोड़ सकते हैं

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

show-all-if-अस्पष्ट: यह पूरा होने वाले फ़ंक्शन के डिफ़ॉल्ट व्यवहार को बदल देता है। यदि 'ऑन' पर सेट किया जाता है, तो जिन शब्दों के एक से अधिक संभावित समापन होते हैं, वे घंटी बजने के बजाय मैचों को तुरंत सूचीबद्ध करने का कारण बनते हैं। डिफ़ॉल्ट मान बंद है'।

देख बैश मैनुअल अधिक जानकारी के लिए।

संपादित करें:

यह बाश काम बिल्कुल zsh tho के रूप में नहीं करता है । Zsh अगले अस्पष्ट मैच तक पूरा करेगा। बैश सभी मैचों के माध्यम से साइकिल चलाएगा।

जैसे

$ ls ~/.ba<tab> .bashrc .bash_history .bash_profile

  • zsh: ~ / .bash तक पूरा हो जाएगा और मैचों की एक सूची प्रस्तुत करेगा जो हाथ से आपको _ को <tab>फिर से जोड़ने और फिर से हिट करने में सक्षम बनाता है ।
  • बैश: बस सभी ~ / .ba * मैचों के माध्यम से चक्र होगा।

8
मुझे तीर कुंजियों का उपयोग करना पसंद है, और zsh के स्वत: पूर्णता के दृश्य संकेत। क्या बैश के साथ उन व्यवहारों को प्राप्त करने का एक तरीका है? मैं बेहतर सर्वर संगतता के लिए वापस स्विच कर रहा हूं
CESCO

2

पर बाद ingkebil के जवाब है, उन लोगों के लिए है कि पुट bindऔर setमें inputrc:

$ tail -n 4 /etc/inputrc
# zsh like completion:
# /superuser/288714/bash-autocomplete-like-zsh
set show-all-if-ambiguous on
TAB:menu-complete

मुझे अपनी .bashrcसफाई रखना पसंद है ।

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