Você pode fazer assim:
!!:s/jpg/png/:s/photo/picture/
Muitos de vocês provavelmente sabem que os comandos ^foo^bar^
ou !:gs/foo/bar
são úteis para executar o comando anterior substituindo o padrão "foo" pelo padrão "bar".
Mas existe uma maneira de substituir múltiplos padrões do comando anterior, como por exemplo em ls *.jpg | grep photo
substituindo as palavras "jpg" e "photo" sem um padrão muito complicado como !:gs/jpg\(.*\)photo/pngfoto
?
Você pode fazer assim:
!!:s/jpg/png/:s/photo/picture/
Não é mais curto do que apenas redigitar o seu comando de amostra, mas você o faz de outra direção e recupera apenas as partes desejadas (aqui ls
e | grep
, depois digite as substituições:
$ ls *.jpg | grep photo
$ !:0 *.png !:2-3 picture
Resultados em:
ls *.png | grep picture