прив’язати послідовність клавіш до Escape, zsh


11

Як би я карту , jjщоб Escв Zsh?

Я намагаюся відтворити відображення ключів, що у мене встановлено у vim, де я jjвідобразив ESCтак, щоб кожен раз, коли я двічі натискав j, він надсилав an <Esc>vim - дозволяючи мені перейти в звичайний режим з більшою зручністю.

Я вже пробував bindkey 'jj' ^[і збираюся спробувати bindkey 'jj' ^[[, але сумніваюся, що це спрацює. Я також перевірив список команд, наданих zsh у звичайному режимі, але я не побачив нічого, що містив normalабо escape.

Примітка
У ^[символах в моєму ~/.zshrcфайлі фактичні жорсткий кодований вислизають; не тільки персонажів ^і [.

Відповіді:


12

Вам потрібно -sприв’язати фактичні рядки замість віджетів:

bindkey -s jj '\e'

Хоча ви , ймовірно , хочете відобразити jjв vi-cmd-modeвіджеті тут:

bindkey jj vi-cmd-mode

(зверніть увагу, що для прив'язки у режимі вставки, а не у звичайному / командному режимі)


1
другий працює як шарм, дякую!
Олексій Магура

2
ПРИМІТКА.KEYTIMEOUT Здається, налаштування порушує прив'язку клавіш.
Олексій Магура

@AlexejMagura лише додає: встановлення KEYTIMEOUT занадто низьке забороняє zle розпізнавати подвійне натискання.
UltraMaster
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.