ตามค่าเริ่มต้นเอ็นจินการเติมเต็มของ zsh จะพยายามต่อท้ายสิ่งที่คุณพิมพ์เท่านั้น คุณกำหนดค่าให้ลองเพิ่มคำนำหน้าด้วย เอ็นจิ้นการกำหนดค่าเสร็จสมบูรณ์แบบอินเทอร์แอคทีฟแบบง่าย ( compinstall
) นำเสนอสิ่งนี้ภายใต้ สิ่งนี้จะแทรกบรรทัดแบบนี้ในของคุณ.zshrc
:
zstyle ':completion:*' matcher-list '' 'l:|=* r:|=*'
zstyle
ชุด builtin (ส่วนใหญ่) การตั้งค่าเสร็จสิ้น matcher-list
สไตล์เสร็จสิ้นคือรายการของวิธีการที่จะพยายามอย่างต่อเนื่องหยุดเมื่อมีอย่างน้อยหนึ่งในการแข่งขัน สตริงว่างหมายถึงความสมบูรณ์เริ่มต้น (คำต่อท้ายเท่านั้น) ควบคุมการจับคู่คาถาl:|=* r:|=*
หมายถึงการลองจับคู่คำนำหน้า*
และการจับคู่คำต่อท้าย*
เช่นใดคำนำหน้าและคำต่อท้าย
คุณสามารถห้ามส่วนนำหน้าที่ขึ้นต้นด้วย_
กัน นี้ยังช่วยให้ความสมบูรณ์ของคำที่ขึ้นต้นด้วย_
และเสร็จสิ้นโดยการเพิ่มคำนำหน้า _
แต่คำนำหน้าอาจจะไม่เริ่มต้นด้วย
zstyle ':completion:*' matcher-list '' 'l:|=[^_]* r:|=*'
สิ่งนี้ใช้กับความสำเร็จทั้งหมดไม่ใช่แค่ชื่อคำสั่งที่สมบูรณ์ ฉันไม่ทราบวิธี จำกัด สิ่งนี้เป็นชื่อคำสั่ง
ควรมีวิธีที่จะแยกชื่อคำสั่งที่แม่นยำมากขึ้นที่เริ่มต้นด้วย_
แต่ฉันไม่ทราบวิธี การเริ่มต้นครั้งแรกนั้นมาพร้อมกับignored-patterns
สไตล์ที่สมบูรณ์
zstyle ':completion:*:*:-command-:*:*' ignored-patterns '_*'
สิ่งนี้ไม่รวมการแข่งขันที่เริ่มต้นด้วย_
; อย่างไรก็ตามหากไม่มีการจับคู่ zsh จะพยายามอีกครั้งโดยไม่มีกฎการข้าม ข้อดีของเรื่องนี้คือถ้าคำสั่งเริ่มต้นด้วยการขีดเส้นใต้ในสถานที่แรกมันจะเสร็จในรอบที่สองนี้ ส่วนที่ร้ายก็คือว่า zsh จึงจะพยายามเพิ่มขีดอยู่แล้วถ้าไม่มีการแข่งขันดังนั้นหากคุณมีvi
และview
แต่ไม่vim
แล้วกดTabหลังจากที่vi
จะนำเสนอvi
และview
แต่ไม่_vim
แต่ถ้าคุณพิมพ์แล้วเสร็จจะนำเสนอvim
_vim