มีวิธีใดบ้างที่จะทำให้แท็บ 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
มีวิธีใดบ้างที่จะทำให้แท็บ 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
คำตอบ:
อัพเดตข้อความใน/etc/inputrc
เพื่อรวม
ตั้งค่าเสร็จสิ้นการละเว้นกรณีบน
จากนั้นใช้^X ^R
เพื่อรีโหลดการกำหนดค่า
^X ^R
เพื่อรีโหลดinputrc
bind "set completion-ignore-case on"
จากบรรทัดคำสั่ง สำหรับฉันเชื่อว่าเทอร์มินัลเซสชันนั้นเท่านั้น
การปรับโครงสร้างหนี้กับประโยชน์ของการหวนเพื่อความคมชัดข้อดีและข้อเสียของการใช้กับ[.]inputrc
เคล็ดลับของหมวกเพื่อขีดล่างเพื่อขอความช่วยเหลือ.bash_profile
หมายเหตุ:การแก้ไขบรรทัดคำสั่งใน Bash นั้นมาจากไลบรารี Readline การปรับแต่งมันเป็นเรื่องไม่สำคัญ แต่ก็คุ้มค่ากับการเรียนรู้ คุณสมบัติของมันรวมถึงความสามารถในการกำหนดแป้นพิมพ์ลัดที่กำหนดเองสำหรับการแทรกตัวอย่างข้อความที่กำหนดไว้ล่วงหน้า - ดูการแก้ไขบรรทัดคำสั่งในคู่มืออ้างอิง Bash
การเสมอทำให้กรณีตายแท็บแล้วเสร็จในทุบตี:
ตัวเลือก A:หากคุณมีอยู่แล้ว:
/etc/inputrc
ไฟล์ (ใช้ทั้งระบบการปรับเปลี่ยนต้องใช้sudo
) และ / หรือ~/.inputrc
ไฟล์ (เฉพาะผู้ใช้)
และ / หรือ
คุณวางแผนที่จะปรับแต่งไลบรารี readline อย่างกว้างขวางและ / หรือต้องการให้การปรับแต่งมีประสิทธิภาพสำหรับสคริปต์เช่นกันเมื่อเรียกread -e
:
เพิ่มบรรทัด
set completion-ignore-case on
ไปทั้งไฟล์ขึ้นอยู่กับว่าคุณต้องการตั้งค่าให้มีประสิทธิภาพสำหรับทุกผู้ใช้หรือปัจจุบันของผู้ใช้ (สร้างไฟล์ถ้าจำเป็น)
คำสั่งที่เกี่ยวข้องที่ทำให้ชื่อไฟล์และไดเรกทอรีเสร็จง่ายขึ้นคือ:
set show-all-if-ambiguous on
สิ่งนี้ทำให้ไม่จำเป็นต้องกด Tab สองครั้งเมื่อมีการแข่งขันมากกว่าหนึ่งรายการ
ตัวเลือก B:หรือคุณอาจเพิ่มคำสั่ง Readline ไปยัง~/.bash_profile
ไฟล์เฉพาะผู้ใช้ของคุณบน OS X (หรือ~/.bashrc
บน Linux) โดยส่งพวกเขาเป็นอาร์กิวเมนต์เดียวไปยัง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 สำหรับการอ่านอินพุตของผู้ใช้
show-all-if-ambiguous
อีกจุดที่ดี อย่างไรก็ตามเนื่องจากคุณพูดว่า "เป็นทางเลือก" จริง ๆ แล้วมีประโยชน์ในการทำสิ่งนี้ผ่านทางbind
เมื่อinputrc
ไฟล์ดูเหมือนจะทำให้ไม่จำเป็นที่?
inputrc
แต่ก็สร้าง~/.inputrc
และเพิ่มสิ่งเหล่านี้อย่างมีความสุขรวมถึงคำสั่งที่เป็นประโยชน์อื่น ๆ ฉันเดาว่าเราสมมติว่าผู้อ่านทุกคนรู้ว่า/etc/inputrc
มีผลกระทบต่อผู้ใช้รายอื่น (เว้นแต่จะมีการแทนที่การตั้งค่าที่ได้รับผลกระทบ) ขณะที่เรากำลังพูดถึง caveats;)
เพื่อหลีกเลี่ยงการเปลี่ยนการกำหนดค่าสำหรับผู้ใช้ทั้งหมดและเพื่อหลีกเลี่ยงการอนุญาตให้ใช้รูทต่อไปนี้:
if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi
echo 'set completion-ignore-case on' >> ~/.inputrc
จากนั้นลงชื่อเข้าใช้ใหม่หรือโหลดใหม่ ~ / .inputrc
/etc/inputrc
หรือ~/.inputrc
ไฟล์ที่กำหนดโดยINPUTRC
เป็นสถานที่เท่านั้นที่สามารถไป การป้อนสิ่งนั้นในพรอมต์ Bash จะไม่ทำงาน