bash_completion को colorize करें


9

जब मैं टाइप करता हूं grepऔर फिर TABदो बार दबाता हूं , तो bash_completionवर्तमान निर्देशिका में फ़ाइलों और निर्देशिकाओं को सूचीबद्ध करेगा। आरंभिक पत्र टाइप करने पर यह फ़ाइल नाम भी पूरा कर देगा। यह सब बहुत अच्छा है, एकमात्र समस्या यह है कि जब निर्देशिका में कई फाइलें और उपनिर्देशिकाएं होती हैं, तो यह काफी अव्यवस्थित और अव्यवस्थित हो सकती है।

यह बहुत मदद करता है अगर bash_completionकम से कम रंग निर्देशिकाओं को अलग-अलग कर सकता है, उसी तरह जो ls -lAकरता है।

क्या यह संभव है?

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

यह मेरा नमूना bash_completionकॉन्फिग फ़ाइल जैसा दिखता है:

if [[ ${cur} == -* ]] ; then
    COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
    return 0

else
    _filedir
fi

1
मुझे नहीं पता कि यह संभव है, bashलेकिन यह डिफ़ॉल्ट व्यवहार है zsh
terdon

1
मामले में यह नहीं स्पष्ट है, मैं के लिए एक समाधान के लिए देख रहा हूँ हैbash
मार्टिन Vegter

क्या फाइल दिखा रहे हो?
terdon

जवाबों:


7

बाश के वर्तमान संस्करण में इस तरह की कोई भी बॉक्स सुविधा नहीं है, आप इसका उपयोग कर सकते हैं zsh, यह डिफ़ॉल्ट रूप से है।

पूर्णता से संबंधित उपकरणों में से एक कहा जाता है compgen। आप कमांड को सही ढंग से रंगीन दिखाने के लिए इसे फाइनल कर सकते हैं, लेकिन यह एक हैक है और व्यावहारिक रूप से उपयोगी नहीं है।

$ compgen -W "$(ls --color=always *)"

यह ठीक से lsरंगाई गई फ़ाइलों की सूची देगा, लेकिन यह रंग से प्राप्त कर रहा है, इसलिए मैं इस देशी रंग पर विचार नहीं करूंगा auto_completion

संदर्भ


कृपया मेरा संपादन देखें। मेरे पास lsमेरी bash_completionकॉन्फ़िग फ़ाइलों में कोई भी नहीं है । ऐसा लगता है कि कोई फ़ंक्शन है _filedirजो फ़ाइलों को सूचीबद्ध करता है।
मार्टिन वेगाटर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.