क्या बैश टैब पूरा मामला असंवेदनशील बनाने का कोई तरीका है?
$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.
मैं मैक ओएस एक्स 10.6 का उपयोग कर रहा हूं
क्या बैश टैब पूरा मामला असंवेदनशील बनाने का कोई तरीका है?
$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.
मैं मैक ओएस एक्स 10.6 का उपयोग कर रहा हूं
जवाबों:
/etc/inputrc
शामिल करने के लिए पाठ को अपडेट करें
पूरा-अनदेखा-मामला सेट करें
फिर ^X ^R
कॉन्फ़िगरेशन को फिर से लोड करने के लिए उपयोग करें।
^X ^R
पुनः लोड करने के लिएinputrc
bind "set completion-ignore-case on"
कमांड लाइन से कर सकते हैं ; के लिए, मेरा मानना है कि केवल टर्मिनल सत्र
[.]inputrc
बनाम का उपयोग करने के पेशेवरों और विपक्षों के विपरीत बाधा के लाभ के साथ पुनर्निर्मित .bash_profile
।
टोपी की टिप उसकी मदद के लिए underscore_d को।
नोट: बैश में कमांड-लाइन संपादन रीडलाइन लाइब्रेरी द्वारा प्रदान किया गया है; इसे अनुकूलित करना गैर-तुच्छ है, लेकिन अच्छी तरह से सीखने लायक है; इसकी विशेषताओं में पाठ के पूर्वनिर्धारित स्निपेट सम्मिलित करने के लिए कस्टम कीबोर्ड शॉर्टकट को परिभाषित करने की क्षमता शामिल है - बैश संदर्भ मैनुअल में कमांड लाइन संपादन देखें।
करने के लिए लगातार टैब-पूरा होने केस-संवेदी बैश में करते हैं:
विकल्प A: यदि आपके पास पहले से है:
/etc/inputrc
फ़ाइल (सिस्टम-वाइड लागू होती है, संशोधन की आवश्यकता होती है sudo
) और / या ~/.inputrc
फ़ाइल (उपयोगकर्ता-विशिष्ट)
और / या
आप रीडलाइन लाइब्रेरी को बड़े पैमाने पर कस्टमाइज़ करने की योजना बना रहे हैं और / या कस्टमाइज़ेशन को स्क्रिप्ट के लिए प्रभावी बनाना चाहते हैं, जब वे कॉल करते हैं read -e
:
लाइन जोड़ें
set completion-ignore-case on
करने के लिए या तो फ़ाइल आप सेटिंग चाहते हैं पर निर्भर करता है के लिए प्रभावी होने के लिए सभी उपयोगकर्ताओं या वर्तमान उपयोगकर्ता (, फ़ाइल बनाने यदि आवश्यक हो तो)।
एक संबंधित आदेश जो फ़ाइल और निर्देशिका नामों को पूरा करना आसान बनाता है:
set show-all-if-ambiguous on
एक से अधिक मैच होने पर यह टैब को दो बार दबाने के लिए अनावश्यक बनाता है ।
विकल्प बी: वैकल्पिक रूप से, आप ReadLine अपने उपयोगकर्ता-विशिष्ट के लिए आदेश जोड़ सकते हैं ~/.bash_profile
ओएस एक्स (या पर फ़ाइल ~/.bashrc
लिनक्स पर), उन्हें एक के रूप में पास करके एक करने के लिए तर्क bind
निर्मित :
bind "set completion-ignore-case on"
bind "set show-all-if-ambiguous on"
ध्यान दें कि bind
में आदेश ~/.bash_profile
/ ~/.bashrc
या तो में बराबर आदेशों से प्राथमिकता दी जाती /etc/inputrc
या ~/.inputrc
।
जैसा कि ऊपर बताया गया है, रीडलाइन कॉन्फ़िगरेशन को इस तरह से परिभाषित किया गया है जो उन लिपियों में प्रभावी नहीं होगा जो उपयोगकर्ता इनपुट पढ़ने के लिए रीडलाइन समर्थन को सक्रिय करने के लिए कहते हैं ।read -e
cd
आज्ञाओं के लिए भी काम करता है । जो इस सवाल को हल करता है और मुझे हजारों कीस्ट्रोक्स से भी बचाएगा। :)
show-all-if-ambiguous
। हालाँकि, जब से आप "एक विकल्प के रूप में" कहते हैं, क्या वास्तव में इसके माध्यम से ऐसा करने का कोई लाभ है bind
, जब inputrc
फाइलें उस अनावश्यक को बनाने लगती हैं?
inputrc
, लेकिन मैंने खुशी से बनाया ~/.inputrc
और जोड़ा, साथ ही अन्य वास्तव में उपयोगी निर्देश। मुझे लगता है कि हम सभी पाठकों को पता है कि /etc/inputrc
अन्य उपयोगकर्ताओं को प्रभावित करता है (जब तक कि बाद की प्रभावित सेटिंग्स को ओवरराइड नहीं किया जाता है)? अभी जब हम कैवेट का उल्लेख कर रहे हैं;)
सभी उपयोगकर्ताओं के लिए कॉन्फ़िगरेशन बदलने से बचने और रूट अनुमतियों से बचने के लिए निम्नलिखित का उपयोग करें:
if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi
echo 'set completion-ignore-case on' >> ~/.inputrc
फिर पुनः लॉगिन या पुनः लोड करें ~ / .inputrc
/etc/inputrc
या~/.inputrc
एक फ़ाइल द्वारा निर्दिष्टINPUTRC
केवल स्थानों पर यह जा सकते हैं। बैश प्रॉम्प्ट में यह दर्ज करने से काम नहीं चलेगा।