ฉันจะทำให้การเติมเต็ม zsh ทำงานเหมือน Bash เสร็จสิ้นได้อย่างไร


12

ฉันเปลี่ยนเป็น zsh แต่ฉันไม่ชอบความสมบูรณ์ หากฉันมี 20 ไฟล์แต่ละไฟล์มีคำนำหน้าแชร์บนแท็บการกด zsh จะทำไฟล์แรกให้เสร็จสมบูรณ์จากนั้นจึงดำเนินการต่อผ่านรายการด้วยการกดแต่ละแท็บ ถ้าฉันต้องการหนึ่งใกล้จบฉันจะต้องกดแท็บหลายครั้ง

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

มีวิธีที่จะทำให้สไตล์นี้สำเร็จหรือไม่? Google แนะนำsetopt bash_autolistแต่สิ่งนี้ไม่มีผลกับฉัน (และไม่มีข้อความแสดงข้อผิดพลาดพิมพ์เมื่อเริ่มต้นเชลล์ของฉัน)

ขอบคุณ

คำตอบ:



8

สิ่งที่คุณต้องการน่าจะเป็น:

setopt noautomenu

1
(10 ปีต่อมา) คำตอบที่ยอมรับไม่มีผล (ชัดเจน) สำหรับฉัน นี่คือสิ่งที่ฉันต้องการและสิ่งที่ดูเหมือนว่า OP ขอ
Jer

1

มีตัวเลือกอื่นถ้าคุณใช้ตัวเลือก "menu select" ใน. zshrc ดังนี้:

autoload -U compinit
compinit
zstyle ':completion:*:*:*:*:*' menu select

คุณจะสามารถดูผลลัพธ์ได้ด้วยปุ่มลูกศร ลองยกตัวอย่างของคุณด้วย "20 ไฟล์พร้อมคำนำหน้าที่แชร์":

  • เมื่อกดปุ่มครั้งแรก [TAB], zsh จะทำให้เสร็จสมบูรณ์มากขึ้นและจากนั้นแสดงรายการของความเป็นไปได้
  • จากนั้นคุณสามารถดำเนินการให้เสร็จสมบูรณ์เหมือนที่คุณมีใน bash (พิมพ์อักขระพิเศษ goto 0)
  • หรือพิมพ์อีกครั้ง [TAB] จากนั้นคุณจะเห็นตัวเลือกที่เป็นไปได้ที่ไฮไลต์ไว้ในเมนูด้านล่างเชลล์พรอมต์ของคุณ โบนัสคุณสามารถนำทางในความเป็นไปได้ด้วยปุ่มลูกศร

ในท้ายที่สุดถึงความเป็นไปได้สุดท้าย:

  • ด้วย Bash อย่างดีที่สุดคุณกด [TAB] แล้วจะได้ถ่านพิเศษจากนั้น [TAB] อีกครั้ง (อาจมากกว่า)
  • ด้วย Zsh คุณกด [TAB] จากนั้นกด [TAB] อีกครั้ง (เพื่อเข้าสู่เมนู) จากนั้นกด "<-" (ปุ่มลูกศรซ้าย) เพื่อเข้าถึงองค์ประกอบสุดท้าย

ทั้งสองเป็น 3 จังหวะสำคัญในกรณีนี้ ส่วนที่เหลือเป็นเรื่องของรสนิยม

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