history - Manipulate the history list
history ?
option? ?
arg arg ...?
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 is not
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
returns its result. Event defaults to -1. This command
results in history revision: see below for details.
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.
event, history, record