NAME
       history - Manipulate the history list

SYNOPSIS
       history ?option? ?arg arg ...?


DESCRIPTION
       The  history  command  performs  one of several operations
       related  to  recently-executed  commands  recorded  in   a
       history list.  Each of these recorded commands is referred
       to as an ``event''.   When  specifying  an  event  to  the
       history command, the following forms may be used:

       [1]    A number:  if positive, it refers to the event with
              that number (all events are  numbered  starting  at
              1).  If the number is negative, it selects an event
              relative to the current event  (-1  refers  to  the
              previous  event,  -2 to the one before that, and so
              on).  Event 0 refers to the current event.

       [2]    A string:   selects  the  most  recent  event  that
              matches  the  string.   An  event  is considered to
              match the string either if the string is  the  same
              as  the  first  characters  of the event, or if the
              string matches the event in the sense of the string
              match command.

       The history command can take any of the following forms:

       history
              Same as history info, described below.

       history add command ?exec?
              Adds  the command argument to the history list as a
              new event.  If exec is specified  (or  abbreviated)
              then the command is also executed and its result is
              returned.  If exec isn't specified  then  an  empty
              string is returned as result.

       history change newValue ?event?
              Replaces  the  value  recorded  for  an  event with
              newValue.  Event specifies the  event  to  replace,
              and  defaults  to the current event (not event -1).
              This command is intended for use in  commands  that
              implement  new  forms  of  history substitution and
              wish to replace the current  event  (which  invokes
              the  substitution) with the command created through
              substitution.  The return value is an empty string.

       history clear
              Erase  the history list.  The current keep limit is
              retained.  The history event numbers are reset.

       history event ?event?
              Returns the value of  the  event  given  by  event.
              Event defaults to -1.

       history info ?count?
              Returns  a formatted string (intended for humans to
              read) giving the event number and contents for each
              of  the  events  in  the  history  list  except the
              current event.  If count is specified then only the
              most recent count events are returned.

       history keep ?count?
              This  command may be used to change the size of the
              history list to count events.  Initially, 20 events
              are  retained in the history list.  If count is not
              specified, the current keep limit is returned.

       history nextid
              Returns the number of the next event to be recorded
              in  the history list.  It is useful for things like
              printing the event number in command-line  prompts.

       history redo ?event?
              Re-executes  the  command  indicated  by  event and
              return its result.  Event  defaults  to  -1.   This
              command results in history revision:  see below for
              details.

HISTORY REVISION
       Pre-8.0 Tcl had a complex history revision mechanism.  The
       current  mechanism  is  more  limited, and the old history
       operations substitute and words have been removed.  (As  a
       consolation, the clear operation was added.)

       The  history option redo results in much simpler ``history
       revision''.  When this option is  invoked  then  the  most
       recent  event is modified to eliminate the history command
       and replace it with the result of the history command.  If
       you  want to redo an event without modifying history, then
       use the event operation to retrieve some  event,  and  the
       add operation to add it to history and execute it.


KEYWORDS
