¿Cómo cambiar cómodamente al modo de comando vi en la línea de comando zsh?

22

En vi, he asignado 'jj' para escapar para poder cambiar al modo de comando sin usar la molesta tecla de escape. Ahora quiero tener lo mismo para la edición de línea de comandos para la que uso el modo vi. Ya he encontrado la siguiente solución:

bindkey '^j' vi-cmd-mode

le permite cambiar con control-j al modo comando. Todavía estoy buscando una solución sin teclas modificadoras como 'jj' o algo similar.

Eman Resu
fuente
44
¿Por qué no simplemente reasignar Caps Lock to Escape?
kyrias

Respuestas:

30

Nota: debe buscar man zshzlemuchas ventajas sobre la personalización bindkeyy la emulación GNU readline.

Así es como me asigné jja Esc:

bindkey -M viins 'jj' vi-cmd-mode

Si está interesado en distinguir entre el modo de inserción y el modo normal, puede probar la sugerencia que Akira menciona aquí

Ehtesh Choudhury
fuente
¡Si! funciona perfectamente. ¡muchas gracias!
Eman Resu
¿Hay algún requisito previo que deba cumplirse antes de que esto funcione en zsh? ¿O formas de depurar las asociaciones de teclas? Después de insertar este comando, no pasa nada. jj todavía no funciona.
UltraMaster
55
Tenía KEYTIMEOUT demasiado bajo, esa era la razón.
UltraMaster
@Ultramaster hace un gran punto. Si ya está configurando KEYTIMEOUT para la velocidad, recomendaría> = 20 milisegundos. Tales comoexport KEYTIMEOUT=20
artesanía