มีวิธีในการทำให้แท็บ Bash เป็นมิตรมากขึ้นหรือไม่


31

ฉันใช้ทุบตีทั้ง Mac ของฉันและเป็นเปลือก cygwin ของฉัน โดยรวมแล้วฉันค่อนข้างพอใจกับมันมาก

ข้อร้องเรียนอย่างหนึ่งของฉันคือว่าความสำเร็จของ TAB นั้นไม่ดีเท่า Windows Command Line TAB ที่สมบูรณ์

ตัวอย่างเช่นหากมีสองไฟล์ที่มีคำนำหน้าเหมือนกันแล้วทุบตีเพียงแค่ส่งเสียงบี๊บที่ฉันเมื่อฉันพยายามที่จะ TAB สมบูรณ์ หากฉันยังคงเก่ง TAB อยู่ท้ายที่สุดมันจะแสดงรายการของไฟล์

ฉันชอบที่ Windows จะวนรอบไฟล์ที่ต้องการในบรรทัดคำสั่งอย่างแน่นอน

มีวิธีทุบตีการทำงานคล้ายกับ Windows Command Line ในเรื่องนี้หรือไม่?

หากไม่มี (ฉันไม่ต้องการเปลี่ยนหอย) ฉันจะทำบางสิ่งบางอย่างเกี่ยวกับ TAB ให้สมบูรณ์ในการทุบตีหรือไม่ มีวิธีใช้ที่มีประสิทธิภาพมากกว่านี้หรือไม่?

คำตอบ:


42

ในการรับพฤติกรรม 'วนผ่านความสำเร็จที่เป็นไปได้' ให้คัดลอกรายการต่อไปนี้ในที่ที่เหมาะสมในไฟล์. bashrc ของคุณ:

[[ $- = *i* ]] && bind TAB:menu-complete

นอกจากนี้bash-completionยังให้การเสริมอีกหลายอย่างนอกเหนือจากการทำให้ชื่อพา ธ สมบูรณ์ ตัวอย่างเช่นการทำให้เมนูสมบูรณ์ใช้งานได้ดีกับโมดูล bash-completion ของ Git เพื่อเติมชื่อคำสั่งชื่อตัวเลือกและอื่น ๆ ให้สมบูรณ์


ขั้นตอนการทำเช่นนี้สำหรับเทอร์มินัล OSx คืออะไร?
อเล็กซ์

2
@Alex: คุณแก้ไขไฟล์.bashrcในโฮมไดเร็กตอรี่ของคุณเพื่อให้มันมีบรรทัดที่ระบุ หาก.bash_profileไฟล์ของคุณ(ในไดเรกทอรีเดียวกัน) ไม่มีบรรทัดเหมือนsource ~/.bashrcกันคุณควรแก้ไขเพื่อรวมบรรทัดดังกล่าวด้วย การตั้งค่าจะใช้งานได้ในหน้าต่างTerminalใหม่ หากคุณไม่ได้มีการแก้ไขที่ต้องการคุณสามารถเปิดไฟล์ในTextEditกับคำสั่งopen -e ~/.bashrc; หากไฟล์ที่ยังไม่อยู่คุณจะต้องสร้างมันเป็นครั้งแรกที่มี (เช่น) touch ~/.bashrcคำสั่ง
Chris Johnsen

1
@Alex, Bash เป็นเชลล์เริ่มต้นที่ 10.3 และใหม่กว่ารวมถึง 10.7 (Lion) ก่อนecho $SHELLอื่น นั่นคือเชลล์ที่เลือกสำหรับบัญชีผู้ใช้ของคุณ หากนั่นไม่ใช่สิ่งที่คุณต้องการคุณจะต้องเปลี่ยนเชลล์ด้วยchpass -s /bin/bash(หรือเชลล์ใดก็ได้ที่คุณต้องการ) ถ้า $ SHELL เรียบร้อยแล้วให้ตรวจสอบเทอร์มินัล> การกำหนดค่าตามความชอบ> เริ่มต้น> เชลล์เปิดด้วย:และเทอร์มินัล> การกำหนดค่าตามความชอบ> การตั้งค่า> โปรไฟล์> เชลล์> เริ่มต้นเพื่อดูว่า
Chris หน้า

5
ใครบ้างมีความคิดว่าฉันควรผูกกลับตัวเลือกหนึ่งด้วย Shift + Tab หรือไม่
ppp

3
@ppp ในของคุณ.bashrc:bind '"\e[Z":menu-complete-backward'
ห้องนิรภัย
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.