ทุบตีการเติมข้อความอัตโนมัติเช่น zsh


28

ฉันกำลังใช้ bash แต่ฉันต้องการให้มีการเติมข้อความอัตโนมัติสไตล์ zsh (คุณกด tab และแท็บผ่านความเป็นไปได้) แทนที่จะใช้ bash ที่ดูเหมือนจะทำซึ่งแสดงรายการความเป็นไปได้ แต่ไม่ได้เลือกอะไรจนกว่าฉันจะพิมพ์ บางอย่างที่จะทำให้เข้าใจผิด ฉันจะรับพฤติกรรมประเภท zsh ในทุบตีได้อย่างไร

การค้นหาวิธีแก้ไขทำให้เกิดคำตอบมากมายสำหรับคำถามอื่น ๆ ดังนั้นฉันหวังว่าฉันจะได้รับคำตอบง่ายๆที่นี่ (คือสิ่งที่จะนำไปใส่ไว้ใน.bashrc)

(และเพื่อตอบคำถามที่ชัดเจนฉันต้องใช้ bash ที่นี่เพราะฉันเพิ่งเข้าร่วมทีมและพวกเขาทำบางสิ่งเพื่อตั้งค่า bash เพื่อให้สภาพแวดล้อมในการทำงานง่ายขึ้นในที่สุดฉันอาจจะแน่ใจได้ว่ามันทำงานเหมือนเดิม วิธี zsh แต่ตอนนี้มันง่ายขึ้นถ้าฉันใช้ bash และทำให้มันทำงานเหมือน zsh ในระหว่างการใช้แบบโต้ตอบ)

คำตอบ:


22

ฉันใช้

bind 'TAB:menu-complete'

เพื่อให้บรรลุมัน


11
เมื่อฉันเพิ่มสิ่งนี้ลงใน. bashrc ของฉันให้แท็บวนรอบตัวเลือกต่าง ๆ ที่เป็นไปได้แทนที่จะแสดงไว้ในเทอร์มินัล เป็นไปได้ไหมที่จะรับทั้งสองพฤติกรรม?
Antonios Hadjigeorgalis

สำหรับการถอยหลังเสร็จสมบูรณ์ใช้งานShitf-Tab bind '"\e[Z":menu-complete-backward'
Ainar-G

24

ในการทำให้เสร็จก่อนและรายชื่อคุณสามารถเพิ่มต่อไปนี้เพื่อ bashrc

bind 'set show-all-if-ambiguous on'
bind 'TAB:menu-complete'

show-all-if-ambiguous: สิ่งนี้จะเปลี่ยนแปลงพฤติกรรมเริ่มต้นของฟังก์ชั่นความสมบูรณ์ หากตั้งค่าเป็น 'เปิด' คำที่มีมากกว่าหนึ่งความสมบูรณ์ที่เป็นไปได้จะทำให้รายการที่ตรงกันปรากฏทันทีแทนที่จะส่งเสียงระฆัง ค่าเริ่มต้นคือ 'ปิด'

ดูคู่มือทุบตีสำหรับข้อมูลเพิ่มเติม

แก้ไข:

สิ่งนี้ไม่ทำให้ bash ทำงานเหมือนกับ zsh tho Zsh จะเสร็จสิ้นจนกว่าจะมีการแข่งขันที่ไม่ชัดเจนครั้งต่อไป Bash จะวนรอบการแข่งขันทั้งหมด

เช่น

$ ls ~/.ba<tab> .bashrc .bash_history .bash_profile

  • zsh: จะเสร็จสิ้นจนถึง ~ / .bash และนำเสนอรายการการแข่งขันที่สะดวกช่วยให้คุณสามารถผนวก _ และกด<tab>อีกครั้ง
  • bash: จะวนรอบการแข่งขัน ~ / .ba * ทั้งหมด

8
ฉันชอบใช้ปุ่มลูกศรและตัวบ่งชี้ภาพของการเติมข้อความอัตโนมัติของ zsh มีวิธีในการรับพฤติกรรมเหล่านั้นด้วยการทุบตี? ฉันสลับกลับเพื่อความเข้ากันได้ของเซิร์ฟเวอร์ที่ดีขึ้น
CESCO

2

ติดตามingkebilคำตอบ 's, สำหรับผู้ที่ใส่bindและsetเข้าinputrc:

$ tail -n 4 /etc/inputrc
# zsh like completion:
# /superuser/288714/bash-autocomplete-like-zsh
set show-all-if-ambiguous on
TAB:menu-complete

ฉันชอบรักษาความ.bashrcสะอาด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.