¿Cómo vincular una secuencia de teclas a un widget en modo vi cmd zsh?

¿Cómo vincular una secuencia de teclas a un widget en modo vi cmd zsh?

Digamos que quiero vincularme Ren redomodo vicmd.

Esto funciona.

bindkey -a r redo

Si lo cambio a esto, no funciona.

bindkey -a rr redo

He probado diferentes cosas sin éxito. ¿No es esto posible? Sé que debería ser posible vincular secuencias a teclas en modo emacs, pero ¿puedes hacer lo mismo con letras en modo vi?

Respuesta1

En el modo estándar vicmd Rya está vinculado a vi-replace-chars.

Entonces , cuando defines R+ Rconredo

bindkey -a rr redo

tienes dos acciones posibles que Zsh podría seguir cuando Rse presiona

  1. interpretarlo como la orden vi-replace-charso
  2. espere un segundo carácter y luego interprete el comandoredo

El algoritmo para hacer coincidir los comandos del teclado en Zsh favorece los comandos cortos, por lo que siempre usará la acción 1.

Para evitar que Zsh haga esto, primero debe quitar el enlace Rcon

bindkey -a -r r

y luego agregue su nueva opción con

bindkey -a rr redo

Luego también puedes agregar vi-replace-charscon

bindkey -a re vi-replace-chars

información relacionada