If I start with the command:
> echo a b c a b c
Sometimes I want the last argument to a command, which in this case is
c but many times can be a long file path or a hard to spell word. In that case I would use
> echo !$ c
!$ with the last argument of the previous command.
To substitute the first argument instead, use
!^ like so:
> echo !^ a
^ character and the
$ character are ofter used as first and last. In vim those commands move the cursor to the beginning and the end of the line respectively. In regex those characters match the beginning or end of the line.