Como evitar que o zsh expanda o histórico quando a barra de espaço é pressionada?

Como evitar que o zsh expanda o histórico quando a barra de espaço é pressionada?

Eu gostaria de usar a expansão mv 'foo bar' !#:1:s^\ ^-^para produzir o comando mv 'foo bar' 'foo-bar'. No entanto, quando pressiono a barra de espaço, zsh assume que terminei de digitar a expansão, deixando-me com mv 'foo bar' !#:1:s^\which yields mv 'foo bar' 'foobar'.

Posso contornar esse comportamento digitando mv 'foo bar' !#:1:s^\^-^e retrocedendo com as teclas de seta para obter mv 'foo bar' !#:1:s^\ ^-^, mas isso vai contra o propósito.

Como posso simplesmente desativar o comportamento de expansão na barra de espaço? Suponho que meu comportamento desejado seja deixar o comando não expandido até pressionar Enter. Não encontrei nada sobre isso na página de manual do zshexpn.

Editar: descobri que posso digitar mv 'foo bar' !{#:1:s^\ ^-^}, o que atrasa a expansão até que }seja digitado. Mas a questão de como evitar o comportamento de expansão da barra de espaço permanece.

Responder1

Parece que você vinculou a tecla de espaço a magic-space, porque ointrodução azshexplica:

Se você vincular o espaço ao espaço mágico, a expansão do histórico no estilo csh será feita na linha sempre que você pressionar a barra de espaço.

Então, remova a linha

bindkey " " magic-space

da sua configuração. Ou (se você estiver usando alguns arquivos de configuração predefinidos comod'oh-meu-zsh) certifique-se de que o seguinte comando seja executado após todas as outras combinações de teclas:

bindkey " " self-insert

informação relacionada