ผูกลำดับคีย์เพื่อ Escape, zsh


11

ฉันจะจับคู่jjกับEscใน zsh ได้อย่างไร

ฉันพยายามสร้างการแมปคีย์ที่ฉันได้ติดตั้งเป็นกลุ่มซึ่งฉันได้jjแมปไปESCดังนั้นเมื่อใดก็ตามที่ฉันกดสองครั้งjมันจะส่งการ<Esc>เรียกเป็นกลุ่ม - ทำให้ฉันเข้าสู่โหมดปกติได้สะดวกยิ่งขึ้น

ฉันได้ลองไปแล้วbindkey 'jj' ^[และฉันกำลังจะลองbindkey 'jj' ^[[แต่ฉันสงสัยว่ามันจะใช้งานได้ ฉันยังตรวจสอบรายการของคำสั่งที่ให้บริการโดย zsh ในโหมดปกติ แต่ผมไม่เห็นอะไรที่มีหรือnormalescape

หมายเหตุตัวละครในของฉันไฟล์ที่เกิดขึ้นจริงหนีเขียนยาก; ไม่ใช่แค่ตัวละครและ.
^[~/.zshrc^[

คำตอบ:


12

คุณต้อง-sผูกสตริงจริงแทนวิดเจ็ต:

bindkey -s jj '\e'

แม้ว่าคุณอาจต้องการแมปjjไปยังvi-cmd-modeวิดเจ็ตที่นี่:

bindkey jj vi-cmd-mode

(โปรดทราบว่าสำหรับการเชื่อมในโหมดแทรกไม่ใช่โหมดปกติ / คำสั่ง)


1
คนที่สองทำงานเหมือนจับใจขอบคุณ!
Alexej Magura

2
KEYTIMEOUTดูเหมือนว่าการตั้งค่าNOTEจะทำให้การเชื่อมโยงคีย์ผิดพลาด
Alexej Magura

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