ทำให้แท็บเป็นตัวพิมพ์ใหญ่ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ [ซ้ำกัน]


40

ซ้ำเป็นไปได้: การ
เติมแท็บที่ไม่คำนึงถึงตัวพิมพ์ใหญ่และเล็กใน Bash

มีวิธีใดบ้างที่จะทำให้แท็บเสร็จใน bash case-insensitive? ตัวอย่างเช่นหากฉันมีไฟล์ชื่อHello.txtและพยายามแท็บให้กรอกโดยพิมพ์heตามด้วยTabจะไม่ทำงาน ฉันจะต้องแท็บดำเนินการได้โดยการพิมพ์He(หมายเหตุ H ทุน) Tabและ มีวิธีใดบ้างในการตั้งค่า bash ดังนั้นฉันจึงไม่จำเป็นต้องเก็บเคสไว้เมื่อฉันพิมพ์และลองแท็บเติมให้เต็ม?


ฉันดีใจที่รู้ว่าการทำงานกับ Linux นั้นเป็นคำถามอื่นที่เฉพาะเจาะจงกับ OSX @sathya
earthmeLon

คำตอบ:


55

สร้างไฟล์ที่มีชื่อ.inputrcในโฮมไดเร็กตอรี่ของคุณ, และวางบรรทัดนี้ไว้:

set completion-ignore-case on

จากนั้นเปิดเปลือกใหม่แล้วลองใช้ หาก / etc / inputrc $include /etc/inputrcที่มีอยู่ในระบบของคุณคุณควรโดยทั่วไปยังเพิ่มบรรทัด แต่ไม่มีวิธีที่จะทำให้เงื่อนไขนี้ดังนั้นคุณควรเพิ่มเฉพาะในกรณีที่ไฟล์นั้นมีอยู่


14
วิธีนี้จะช่วยป้องกันการทุบตีจากการอ่านค่าเริ่มต้นการ/etc/inputrcทำลายสิ่งต่าง ๆ เช่นการนำทางด้วย ctrl-left / right ตรวจสอบเพื่อเพิ่มในของคุณ$include /etc/inputrc ~/.inputrc
Nicolas Marchildon

1
คุณยังสามารถใช้bind -f ~ / .inputrcเพื่อโหลดการเปลี่ยนแปลงนี้อีกครั้ง
อธิการ

2
ฉันจะรวม @NicolasMarchildon แสดงความคิดเห็นในคำตอบเพราะมันควรจะมี
TheEpsilon

แปลกมันไม่ทำงานสำหรับฉัน นี่คือของฉัน~/.inputrc: pastebin.com/WVQmrNZu
Alexey Petrenko

@AlexeyPetrenko ที่ดูโอเคกับฉัน มีตัวอักษรที่มองไม่เห็นในไฟล์ที่สับสนหรือไม่ ลองพิมพ์ด้วยLC_ALL=C cat -vet ~/.inputrc- คุณควรเห็น "$" ในตอนท้ายของแต่ละบรรทัด แต่ไม่มีอะไรตลกอีกแล้ว นอกจากนี้ลองbind -vและดูสิ่งที่มันแสดงให้เห็นสำหรับcompletion-ignore-caseตัวแปร ในที่สุดมีบางอย่างในไฟล์ shell init อื่นที่อาจเปลี่ยนหรือไม่
Gordon Davisson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.