 line entry in the
history list.  Unless the reference is absolute, events are relative to
the current position in the history list.

'!'
     Start a history substitution, except when followed by a space, tab,
     the end of the line, or '='.

'!N'
     Refer to command line N.

'!-N'
     Refer to the command N lines back.

'!!'
     Refer to the previous command.  This is a synonym for '!-1'.

'!STRING'
     Refer to the most recent command preceding the current position in
     the history list starting with STRING.

'!?STRING[?]'
     Refer to the most recent command preceding the current position in
     the history list containing STRING.  The trailing '?' may be
     omitted if the STRING is followed immediately by a newline.  If
     STRING is missing, the string from the most recent search is used;
     it is an error if there is no previous search string.

'^STRING1^STRING2^'
     Quick Substitution.  Repeat the last command, replacing STRING1
     with STRING2.  Equivalent to '!!:s^STRING1^STRING2^'.

'!#'
     The entire command line typed so far.

