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

8

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

vim arbit.py
python arbit.py

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

Como posso fazer isso?

    
por Sanjeev Satheesh 20.02.2011 / 07:11

2 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 de ! , 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 bash para obter mais detalhes.

    
por 20.02.2011 / 07:38
3

Existem pelo menos algumas maneiras de fazer isso.

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

que recupera o último argumento do comando anterior como:

$ vim arbit.py
$ python !$

ou

$ vim arbit.py
$ python !*

que recupera todos os argumentos do comando anterior.

    
por 20.02.2011 / 07:39