2
เป็นไปได้หรือไม่ที่จะใช้พฤติกรรมการเลือกเมนู zsh ที่แตกต่างกันสำหรับคำสั่งต่าง ๆ ?
ฉันกำลังใช้menu selectพฤติกรรมในzshซึ่งจะเรียกเมนูด้านล่างเคอร์เซอร์ที่คุณสามารถดูความเป็นไปได้ต่างๆ ตัวเลือก. zshrc ที่ฉันตั้งไว้สำหรับสิ่งนี้คือ zstyle ':completion:*' menu select=2 ตามค่าเริ่มต้นการกดReturnเพื่อเลือกความเป็นไปได้ในเมนูนี้จะทำให้คำสมบูรณ์เท่านั้น - ไม่ได้ส่งคำสั่งจริง ตัวอย่างเช่นฉันอาจได้รับเมนูเช่นนี้ ~ % cd de<TAB> completing directory: [Desktop/] Development/ การกดReturnที่นี่จะส่งผลให้ ~ % cd Desktop/ จากนั้นผมก็ต้องกดสองเวลาในการส่งจริงคำสั่งReturn ฉันสามารถปรับเปลี่ยนพฤติกรรมนี้เพื่อให้การกดReturnทั้งสองเลือกความสมบูรณ์และส่งคำสั่งโดยทำสิ่งนี้ bindkey -M menuselect '^M' .accept-line อย่างไรก็ตามมีปัญหากับเรื่องนี้: บางครั้งฉันต้องกรอกไฟล์หรือไดเรกทอรีโดยไม่ต้องส่งคำสั่ง ตัวอย่างเช่นฉันอาจต้องทำln -s Desktop Desktop2- ด้วยbindkeyพฤติกรรมนี้การพยายามทำให้เดสก์ท็อปเสร็จสมบูรณ์จะส่งผลให้ln -s Desktop/ถูกส่งเป็นคำสั่งและแน่นอนว่าฉันไม่ต้องการสิ่งนั้น ฉันรู้ว่าเพียงแค่กดปุ่มเว้นวรรคจะให้ฉันขึ้นกับคำสั่ง แต่ตอนนี้มันเป็นนิสัย ได้รับนี้มีวิธีที่จะทำให้มันมีเพียงบางคำสั่งให้คุณกดReturnหนึ่งครั้ง (เช่นcd) แต่คำสั่งอื่น ๆทั้งหมดต้องกดมันสองครั้ง?