powiąż sekwencję klawiszy z Escape, zsh


11

Jak bym na mapie jj, aby Escw zsh?

Próbuję odtworzyć mapowanie klawiszy, które skonfigurowałem w vimie, do którego jjmapowałem, aby ESCza każdym razem, gdy dwukrotne naciśnięcie j, wysyłało an <Esc>to vim - pozwalając mi wejść w tryb normalny z większą wygodą.

Już próbowałem bindkey 'jj' ^[i zamierzam spróbować bindkey 'jj' ^[[, ale wątpię, czy to zadziała. Sprawdziłem również listę poleceń dostarczonych przez zsh w trybie normalnym, ale nie widziałem nic, co zawierało normallub escape.

UWAGA
Te ^[znaki w moim ~/.zshrcpliku są rzeczywiste zakodowanego ucieka; nie tylko postacie ^i [.

Odpowiedzi:


12

Musisz -spowiązać rzeczywiste ciągi zamiast widżetów:

bindkey -s jj '\e'

Choć prawdopodobnie chcesz mapować jjdo vi-cmd-modewidget tutaj:

bindkey jj vi-cmd-mode

(uwaga dotyczy wiązania w trybie wstawiania, a nie w trybie normalnym / poleceń)


1
drugi działa jak urok, dzięki!
Alexej Magura

2
UWAGA ustawienie KEYTIMEOUTwydaje się przerywać wiązanie klawiszy.
Alexej Magura

@AlexejMagura właśnie dodaje: ustawienie zbyt niskiego parametru KEYTIMEOUT uniemożliwia zle rozpoznawanie podwójnego naciśnięcia.
UltraMaster,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.