enlazar secuencia de teclas a Escape, zsh

11

¿Cómo iba a asignar jja Escen zsh?

Estoy tratando de recrear una asignación de teclas que configuré en vim, donde la he jjasignado para ESCque cada vez que presione dos veces j, envíe el an <Esc>a vim, lo que me permite ingresar al modo normal con mayor comodidad.

Ya lo intenté bindkey 'jj' ^[y estoy a punto de intentarlo bindkey 'jj' ^[[, pero dudo que funcione. También revisé la lista de comandos proporcionados por zsh en modo normal, pero no vi nada que contuviera normalo escape.

NOTA
Los ^[caracteres en mi ~/.zshrcarchivo son escapes reales codificados; no solo los personajes ^y [.

Alexej Magura
fuente

Respuestas:

12

Debe -svincular cadenas reales en lugar de widgets:

bindkey -s jj '\e'

Aunque probablemente desee asignar jjal vi-cmd-modewidget aquí:

bindkey jj vi-cmd-mode

(tenga en cuenta que es para vincular en modo de inserción, no normal / modo de comando)

Stéphane Chazelas
fuente
1
el segundo funciona de maravilla, gracias!
Alexej Magura
2
NOTA: la configuración KEYTIMEOUTparece romper la combinación de teclas.
Alexej Magura
@AlexejMagura solo agrega: establecer KEYTIMEOUT demasiado bajo prohíbe que zle reconozca la doble pulsación.
UltraMaster