วิธีทำให้ zsh เสร็จสิ้นเช่นทุบตี


2

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

Mydata.txt
YourData.txt

หากฉันพิมพ์vimช่องว่างแล้วกดtabมันจะเติมข้อความอัตโนมัติโดยอัตโนมัติMydata.txtแทนที่จะแสดงรายการและรอการป้อนข้อมูลของฉัน ฉันไม่ชอบที่จะกดแท็บต่อไปเพื่อเลือกไฟล์ มันง่ายกว่าที่จะกดตัวอักษรบางตัว

ฉันพยายามแก้ไข. zshrc และตั้งค่า

unsetopt MENU_COMPLETE

แต่มันไม่ทำงาน

ใครช่วยบอกคำแนะนำกับฉันได้บ้าง

คำตอบ:


4

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

6.2.1 ความสำเร็จที่ไม่ชัดเจน

กลุ่มตัวเลือกที่ใหญ่ที่สุดเกี่ยวข้องกับสิ่งที่เกิดขึ้นเมื่อการทำให้เสร็จไม่ชัดเจนในคำอื่น ๆ ที่มีมากกว่าหนึ่งที่เป็นไปได้สำเร็จ ตัวเลือกที่เกี่ยวข้องเจ็ดตัวเลือกมีดังนี้ดังที่คัดลอกมาจากคำถามที่พบบ่อย; ชุดค่าผสมที่แตกต่างกันเป็นไปได้:

  • ด้วยชุดNO_BEEPเสียงบี๊บที่น่ารำคาญก็หายไป
  • ด้วยNO_LIST_BEEP การส่งเสียงบี๊บจะถูกปิดเพื่อความสำเร็จที่ไม่ชัดเจนเท่านั้น
  • กับAUTO_LISTชุดเมื่อเสร็จสิ้นไม่ชัดเจนคุณจะได้รับรายการโดยไม่ต้องพิมพ์CTRL+D,
  • เมื่อตั้งค่าBASH_AUTO_LISTรายการจะเกิดขึ้นในครั้งที่สองที่คุณกดแท็บเมื่อเสร็จสิ้นการคลุมเครือ
  • ด้วยLIST_AMBIGUOUSสิ่งนี้จะได้รับการแก้ไขเพื่อไม่ให้มีรายการใด ๆ หากมีคำนำหน้าหรือคำต่อท้ายที่ไม่ต้องคลุมเครือ - สามารถนำมารวมกับ BASH_AUTO_LISTเพื่อให้ทั้งคู่ใช้งานได้คุณต้องกดแท็บสามครั้งสำหรับรายชื่อ
  • กับREC_EXACTหากสตริงในบรรทัดคำสั่งตรงกับหนึ่งในความสำเร็จที่เป็นไปได้มันจะได้รับการยอมรับแม้ว่าจะมีความสำเร็จอื่น (เช่นสตริงนั้นกับสิ่งอื่นเพิ่ม) ที่ตรงกับ
  • ด้วยชุดMENU_COMPLETE การแทรกหนึ่งครั้งจะเสร็จสมบูรณ์อย่างสมบูรณ์จากนั้นเมื่อคุณกดปุ่มTABจะเปลี่ยนเป็นรายการถัดไปและจนกว่าคุณจะกลับไปยังตำแหน่งที่คุณเริ่ม
  • ด้วยAUTO_MENUคุณจะได้รับเมนูพฤติกรรมเมื่อคุณกด TAB อีกครั้งเมื่อเสร็จสิ้นการคลุมเครือ

คุณอาจต้องการใช้ (แต่อย่างที่ฉันบอกว่าฉันไม่แน่ใจโปรดแก้ไขให้ถูกต้อง)

setopt BEEP NO_AUTOLIST BASH_AUTOLIST NO_MENUCOMPLETE

ที่เทียบเท่ากับsetopt NO_OPTIONunset OPTION


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

2

ฉันพบคำตอบด้วยตัวเอง ถ้าฉันตั้ง

zstyle: เสร็จ: : : *: เริ่มต้น 'ไม่มีเมนูให้เลือก

จากนั้นฉันสามารถป้อนอักขระเพื่อเลือกตัวเลือกการเติมข้อความอัตโนมัติ แม้ว่าฉันไม่สามารถเลือกตามรายการ


0

ฉันใช้

 setopt autolist

คุณทำสิ่งที่ต้องการหรือไม่


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