history
Команда работает со списком выполнявшихся команд.
СИНТАКСИС
history ?option? ?arg arg
ОПИСАНИЕ
Команда history выполняет действия по отношению к
недавно выполненным командам, занесенным в журнал. Каждая из
этих зарегистрированных команд обозначается термином
"событие". Ссылаться на события в команде
history можно одним из следующих способов:
- Число. Если положительное - ссылается на событие с
этим номером (все события нумеруются начиная с 1). Если число
отрицательное, то оно указывает номер события относительно
текущего (-1 - предыдущее, -2 - перед предыдущим
и т.д.). Событие 0 ссылается на текущее событие.
- Строка. Ссылается на наиболее позднее событие,
которое удовлетворяет строке. Событие удовлетворяет строке,
если оно начинается со строки, или в соответствии с правилами
команды string match.
Команда history может принимать одну из следующих
форм.
- history
- То же самое, что команда history info, описанная
ниже.
- history add command ?exec?
- Добавляет аргумент command в журнал как новое
событие. Если присутствует аргумент exec(или произвольное сокращение), то
команда command выполняется и возвращается ее
результат. В противном случае возвращается пустая строка.
- history change newValue
?event?
- Заменяет описание события event на newValue.
Аргумент event определяет событие, описание которого
будет заменено. По умолчанию - текущее событие (даже не
предыдущее!). Эта форма команды предназначается для
использования в тех случаях, когда переформировывается журнал
событий и позволяет заменить текущее событие (переформирование
журнала) на необходимое. Команда возвращает пустую строку.
- history clear
- Удаляет журнал событий. Количество запоминаемых событий
(см. history keep) сохраняется. Нумерация
событий начинается сначала.
- history event ?event?
- Возвращает описания события event. Значение по
умолчанию -1.
- history info ?count?
- Возвращает в удобном для чтения виде список, состоящий из
номеров и описаний событий (кроме текущего). Если аргумент
count задан, то только count последних событий
возвращаются.
- history keep ?count?
- Команда изменяет размер журнала на count событий.
Исходно в журнале сохраняются 20 последних событий. Если
аргумент count не указан, команда возвращает текущее
значение размера журнала.
- history nextid
- Возвращает номер следующего события, которое будет записано
в журнал. Полезно, например, для вывода номера события в
приглашении командной строки.
- history redo ?event?
- Повторно выполняет команду, указанную с помощью аргумента
event. Значение аргумента по умолчанию -1. Эта
команда вызывает переформирование журнала, см. ниже.
-
ПЕРЕФОРМИРОВАНИЕ ЖУРНАЛА
До версии 8.0 Tcl имел весьма сложный механизм
переформирования журнала. Новый механизм несколько сокращен за
счет старых опций substitute и words. (Взамен
добавлена новая опция clear).
Опция redo позволяет переформировывать журнал
значительно проще. При ее выполнении последнее событие
изменяется таким образом, что удаляется "служебная"
команда history, которая реально выполнялась, а вместо
нее записывается та команда, которая необходима.
Если вы хотите повторить прежнюю команду, не модифицируя
журнал, выполните сначала команду history event, чтобы
извлечь описание команды, а затем history add, чтобы
выполнить ее.