привязать последовательность клавиш к 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.