Repete o último comando que combina “duas palavras” zsh

1

Eu quero repetir o último comando que corresponde a foo bar . Usar !! não funciona (não é o último comando que usei), e nem !foo , porque minha história é parecida com

foo bar dee zep
foo boo lee kee
foo bee

Se eu tentar digitar !foo bar , zsh auto-conclui para foo bee (que é o mesmo que !! de qualquer maneira) ao atingir o espaço. Como eu faria isso?

    
por simont 19.02.2012 / 03:47

2 respostas

2
!?foo bar

Veja link

Editar : Não, você não deve escapar dos espaços. Se você precisar adicionar algo que não faz parte da expansão do histórico, separe-o com outro ? , por exemplo:

echo hello
echo foo
!?echo hello? world # runs "echo hello world"
    
por 19.02.2012 / 04:21
0

Melhor resposta:

!{?foo bar?}

Acho as chaves úteis para atrasar a expansão do histórico com o espaço mágico, embora sejam documentadas como:

Isole uma referência de histórico de caracteres adjacentes (se necessário).

na página:

link

Observação: em alguns casos, pode ser muito mais rápido usar a sintaxe do item n th anterior, como:

!-2

para o segundo comando, !-1 é o mesmo que !!

    
por 22.03.2016 / 13:19