
Me gustaría usar la expansión mv 'foo bar' !#:1:s^\ ^-^
para producir el comando mv 'foo bar' 'foo-bar'
. Sin embargo, cuando presiono la barra espaciadora, zsh supone que terminé de escribir la expansión, dejándome con mv 'foo bar' !#:1:s^\
lo que produce mv 'foo bar' 'foobar'
.
Puedo evitar este comportamiento escribiendo mv 'foo bar' !#:1:s^\^-^
y luego retrocediendo con las teclas de flecha para obtener mv 'foo bar' !#:1:s^\ ^-^
, pero eso frustra el propósito.
¿Cómo puedo desactivar el comportamiento de expandir con la barra espaciadora? Supongo que mi comportamiento deseado es dejar el comando sin expandir hasta que presione Enter. No encontré nada sobre esto en la página de manual de zshexpn
.
Editar: descubrí que puedo escribir mv 'foo bar' !{#:1:s^\ ^-^}
, lo que retrasa la expansión hasta que }
se escribe. Pero la cuestión de cómo evitar el comportamiento de expandir con la barra espaciadora sigue en pie.
Respuesta1
Parece que has vinculado la tecla de espacio a magic-space
, porque elintroducción azshexplica:
Si vincula el espacio al espacio mágico, la expansión del historial al estilo csh se realiza en la línea cada vez que presiona la barra espaciadora.
Entonces, elimine la línea
bindkey " " magic-space
desde su configuración. O (si está utilizando algunos archivos de configuración predefinidos comod'oh-my-zsh) asegúrese de que el siguiente comando se ejecute después de todas las demás combinaciones de teclas:
bindkey " " self-insert