Como posso executar um comando diferente, mas com os mesmos argumentos?

8

Por exemplo, edito e, em seguida, corro a mesma fonte.

vim arbit.py
python arbit.py

Eu sei que poderia executá-lo de dentro vim, mas quero uma solução geral no Bash. Continuo encontrando situações em que reutilizo argumentos.

Como eu posso fazer isso?

Sanjeev Satheesh
fonte

Respostas:

12

Use !*. Ele se expande para todas as palavras, exceto a primeira (ou seja, o comando).

$ vim arbit.py
$ python !*
python arbit.py

Você pode combiná-lo com todos os recursos !, por exemplo:

$ vim arbit.py
$ ls
$ python !vim:*
vim arbit.py

Ou, se você quiser apenas a última palavra, há duas outras maneiras:

$ vim arbit.py
$ python !$

ou:

$ vim arbit.py
$ python <Esc+.>

Consulte a documentação de interação do histórico do bash para obter mais detalhes.

Mikel
fonte
Com !:2você reutilize o segundo argumento do comando anterior.
Matthias Braun
3

Existem pelo menos algumas maneiras de fazer isso.

$ vim arbit.py
$ python[press Alt-.]

que recupera o último argumento do comando anterior, como faz:

$ vim arbit.py
$ python !$

ou

$ vim arbit.py
$ python !*

que recupera todos os argumentos do comando anterior.

Pausado até novo aviso.
fonte