Substituir o argumento N no comando anterior

2

Eu migrei recentemente para o ZSH e gostaria de ser um pouco mais eficiente substituindo argumentos em comandos. Especificamente, gostaria de substituir o argumento "N" na chamada mais recente do comando "cmd". Eu não quero saber qual foi o padrão de argumento anterior, apenas quero que o argumento inteiro seja substituído.

Por exemplo, digamos que eu tenha esse comando em algum lugar da minha história,

foo arg-1 arg-2 arg-3

E eu quero substituir o primeiro argumento posicional por "arg-replaced" na minha próxima invocação. Olhando através de zshexpn , pensei em fazer algo como:

!foo:1:s/.*/arg-replaced/ [TAB]

Com os resultados esperados:

foo arg-replaced arg-2 arg-3

Mas isso resulta em um erro, "zsh: substitution failed".

Eu olhei para a pergunta " Como eu substituo um argumento específico de um comando anterior em zsh? " e parece quase o que eu quero, exceto que ele apenas substitui o comando anterior, em vez de pesquisar o histórico do meu padrão de comando. Eu sinto que isso deve ser algo suportado pela expansão padrão do zsh, mas eu sou capaz de descobrir como realizá-lo.

    
por Palpatim 26.06.2017 / 19:22

0 respostas