سؤال اكتمال علامة التبويب غير حساسة لحالة الأحرف في Bash


هل هناك أي طريقة لجعل حالة علامة التبويب Bash كاملة غير حساسة؟

$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.

أنا أستخدم نظام التشغيل Mac OS X 10.6


131
2018-01-01 20:02


الأصل




الأجوبة:


تحديث النص في /etc/inputrc لكي يتضمن

تعيين الانتهاء - تجاهل القضية على

ثم استخدام ^X ^R لإعادة تحميل التكوين.


157
2018-01-01 20:39



"كذلك" - /etc/inputrc أو ~/.inputrc أو ملف معين من قبل INPUTRC هي الأماكن الوحيدة التي يمكن أن تذهب. لن يعمل إدخال ذلك في مطالبة Bash. - Dennis Williamson
يصيح! أنت على حق :) - John T
^X ^R لإعادة التحميل inputrc - grawity
تضمين التغريدة ردًا علىDennisWilliamson bind "set completion-ignore-case on" من سطر الأوامر ل ، أعتقد ، أن الجلسة النهائية فقط - Clay Bridges
وبالتالي هذا ما msysgit ولكن تفتقر إلى MSYS2! هنا كنت أحاول العثور عليه على سبيل المثال. / etc / profile ... - SamB


إعادة هيكلة مع الاستفادة من الإدراك المتأخر لمقارنة إيجابيات وسلبيات استخدام [.]inputrc ضد. .bash_profile.
تلميح من القبعة ل underscore_d لمساعدته.

ملحوظة: يتم توفير تحرير سطر الأوامر في Bash بواسطة مكتبة Readline؛ تخصيصها غير تافهة ، ولكنها تستحق التعلم ؛ وتشمل ميزاته القدرة على تحديد اختصارات لوحة المفاتيح المخصصة لإدخال مقتطفات نصية محددة مسبقًا - راجع تحرير سطر الأوامر في دليل Bash المرجعي

إلى باستمرار جعل علامة التبويب اكتمال حالة الأحرف في Bash:


الخيار أ: إذا كنت تملك بالفعل:

  • ل /etc/inputrc ملف (ينطبق على نطاق المنظومة ، يتطلب التعديل sudo)
  • و / أو ~/.inputrc ملف (خاص بالمستخدم)

    و / أو

كنت تخطط لتخصيص مكتبة readline على نطاق واسع و / أو ترغب في جعل التخصيصات فعالة ل مخطوطات أيضا عندما يتصلون read -e:

إضافة خط

set completion-ignore-case on

إلى إما ، بناءً على ما إذا كنت تريد أن يكون الإعداد فعالًا الكل المستخدمين أو تيار المستخدم (إنشاء الملف ، إذا لزم الأمر).

الأمر ذو الصلة الذي يجعل إكمال أسماء الملفات والمجلدات أسهل:

set show-all-if-ambiguous on

هذا يجعلها غير ضرورية للضغط على Tab مرتين عندما يكون هناك أكثر من مباراة واحدة.


الخيار ب: بدلاً من ذلك ، يمكنك إضافة أوامر Readline إلى المستخدم الخاص بك ~/.bash_profile ملف على OS X (أو ~/.bashrc على لينكس) ، عن طريق تمريرها ك غير مرتبطة حجة الى bind مدمج:

bind "set completion-ignore-case on"
bind "set show-all-if-ambiguous on"

لاحظ أن bind الأوامر في ~/.bash_profile / ~/.bashrc تأخذ الأسبقية على الأوامر المعادلة في أي منهما /etc/inputrc أو ~/.inputrc.

وكما هو موضح أعلاه ، فإن تكوين Readline يحدد بهذه الطريقة ليس ساري المفعول في مخطوطات هذا الاتصال read -e لتنشيط دعم Readline لقراءة مدخلات المستخدم.


102
2018-06-11 05:02



show-all-if-ambiguous هو لطيف للغاية! غالبًا ما تساءلت عن سبب جعلني أضع علامة على مرتين لأداء هذا الإجراء. الآلاف من ضربات المفاتيح المحفوظة في مستقبلي! شكر! - user34112
رائع ، حتى أنه يعمل من أجل cdأوامر. الذي يحل هذا السؤال وسيتم حفظ لي الآلاف من ضغطات المفاتيح أيضا. :) - hoosierEE
نقطة كبيرة إعادة show-all-if-ambiguous. ومع ذلك ، بما أنك تقول "كبديل" ، فهل هناك أي فائدة فعلية للقيام بذلك عبر bind، عندما inputrc يبدو أن الملفات التي تجعل غير ضرورية؟ - underscore_d
underscore_d: سؤال جيد ؛ يرجى الاطلاع على إجابتي المحدثة. - mklement0
رائع شكرا! على ديبيان 8.2 لم يكن لدي inputrc، لكني خلقت بسعادة ~/.inputrc وأضافتها ، بالإضافة إلى غيرها من التوجيهات المفيدة حقًا. أعتقد أننا نفترض أن جميع القراء يعرفون ذلك /etc/inputrc  يؤثر على المستخدمين الآخرين (ما لم يتجاوز هذا الأخير الإعدادات المتأثرة)؟ فقط بينما نذكر التحذيرات ؛) - underscore_d


لتجنب تغيير التكوين لكافة المستخدمين ولتجنب أذونات الجذر ، استخدم ما يلي:

if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi
echo 'set completion-ignore-case on' >> ~/.inputrc

ثم إعادة تسجيل الدخول أو إعادة تحميل ~ / inputrc


1
2018-04-08 04:52