8

For example, I edit and then run the same source.

vim arbit.py
python arbit.py

I know I could run it from within vim, but I want a general solution on Bash. I keep finding situations where I reuse arguments.

How can I do that?

12

Use !*. It expands to all words except the first one (i.e. the command).

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

You can combine it with all the features of !, for example:

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

Or, if you want only the last word, there are two other ways:

$ vim arbit.py
$ python !$

or:

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

See the bash history interaction documentation for more details.

  • With !:2 you reuse the second argument of the previous command. – Matthias Braun Sep 27 '14 at 4:28
3

There are at least a couple of ways to do this.

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

which retrieves the last argument of the previous command as does:

$ vim arbit.py
$ python !$

or

$ vim arbit.py
$ python !*

which retrieves all the arguments of the previous command.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.