Olhe em oh-my-zsh / lib / chaves-bindings.zsh e você verá a linha
bindkey ' ' magic-space # also do history expansion on space
comente para remover este recurso.
(Veja minha pergunta anterior para um contexto adicional).
Estou migrando para zsh de bash e usando oh-my-zsh . Quando meu histórico de zsh é parecido com o seguinte:
git status
git add -A
git commit
Eu quero poder executar novamente o git add -A . Para fazer isso, eu poderia usar !?git add , que deveria:
!?str[?] Refer to the most recent command containing str. The trailing ‘?’ is necessary if this reference is to be followed by a modifier or followed by any text that is not to be considered part of str.
O link para os designadores de eventos do zsh é aqui .
Infelizmente, não consigo fazer isso - como estou digitando !?git add , ao atingir o ' ' , ele conclui automaticamente o comando para o comando mais recente que corresponde a git (isto é, ele auto- conclui com git commit ). Eu não posso usar o designador de evento corretamente devido a esse preenchimento automático quando eu atingir o espaço.
Suponho que este é um recurso oh-my-zsh . Eu não tenho a menor idéia de onde procurar, - grep ing para 'complete' na fonte oh-my-zsh não me leva a lugar nenhum.
Minha pergunta: como desativo esse recurso? Ou, se isso não é algo conhecido, onde eu deveria estar procurando - se eu fosse implementar esse preenchimento automático quando o espaço em branco fosse inserido, onde seria um lugar lógico para fazer isso na estrutura oh-my-zsh ?
Existem algumas outras maneiras de eliminar esse gato:
!{?git add?}
As chaves abertas permitirão suprimir a expansão do espaço mágico no primeiro espaço e, em seguida, se você usar a guia após a chave de fechamento, ela será expandida na mesma linha, como mágica. É claro que !{?git a?} seria suficiente.
!?add
Você não precisa do git , neste caso, pelo menos. Após o segundo d você pode apertar o botão de retorno ou tab. Se houver muito histórico entre você e o comando, isso encontrará os três caracteres add em qualquer ponto no comando, o que pode ser um problema.
expansão do histórico do zsh está detalhada nos documentos em: