<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN> <html> <head> <title>history</title> </head> <body> <h1>history</h1> <p>Команда работает со списком выполнявшихся команд.</p> <h2>СИНТАКСИС</h2> <pre> <strong>history</strong> ?<em>option</em>? ?<em>arg</em> <em>arg</em> </pre> <h2>ОПИСАНИЕ</h2> <p> Команда <strong>history</strong> выполняет действия по отношению к недавно выполненным командам, занесенным в журнал. Каждая из этих зарегистрированных команд обозначается термином "событие". Ссылаться на события в команде <strong>history</strong> можно одним из следующих способов:</p> <ol> <li><em>Число</em>. Если положительное - ссылается на событие с этим номером (все события нумеруются начиная с 1). Если число отрицательное, то оно указывает номер события относительно текущего (<strong>-1</strong> - предыдущее, <strong>-2</strong> - перед предыдущим и т.д.). Событие <strong>0</strong> ссылается на текущее событие.</li> <li><em>Строка</em>. Ссылается на наиболее позднее событие, которое удовлетворяет строке. Событие удовлетворяет строке, если оно начинается со строки, или в соответствии с правилами команды <strong>string match</strong>.</li> </ol> <p>Команда <strong>history</strong> может принимать одну из следующих форм.</p> <dl> <dt><strong>history</strong></dt> <dd> То же самое, что команда <strong>history info</strong>, описанная ниже. </dd> <dt><strong>history</strong> <strong>add</strong> <em>command</em> ?<em>exec</em>? </dt> <dd> Добавляет аргумент <em>command</em> в журнал как новое событие. Если присутствует аргумент <strong><a href= exec.html>exec</a></strong>(или произвольное сокращение), то команда <em>command</em> выполняется и возвращается ее результат. В противном случае возвращается пустая строка. </dd> <dt><strong>history</strong> <strong>change</strong> <em>newValue</em> ?<em>event</em>?</dt> <dd> Заменяет описание события <em>event</em> на <em>newValue</em>. Аргумент <em>event</em> определяет событие, описание которого будет заменено. По умолчанию - текущее событие (даже не предыдущее!). Эта форма команды предназначается для использования в тех случаях, когда переформировывается журнал событий и позволяет заменить текущее событие (переформирование журнала) на необходимое. Команда возвращает пустую строку. </dd> <dt> <strong>history</strong> <strong>clear</strong> </dt> <dd> Удаляет журнал событий. Количество запоминаемых событий (см. <strong>history</strong> <strong>keep</strong>) сохраняется. Нумерация событий начинается сначала. </dd> <dt><strong>history</strong> <strong>event</strong> ?<em>event</em>?</dt> <dd> Возвращает описания события <em>event</em>. Значение по умолчанию <strong>-1.</strong> </dd> <dt> <strong>history</strong> <strong>info</strong> ?<em>count</em>? </dt> <dd> Возвращает в удобном для чтения виде список, состоящий из номеров и описаний событий (кроме текущего). Если аргумент <em>count</em> задан, то только <em>count</em> последних событий возвращаются. </dd> <dt> <strong>history</strong> <strong>keep</strong> ?<em>count</em>? </dt> <dd> Команда изменяет размер журнала на <em>count</em> событий. Исходно в журнале сохраняются 20 последних событий. Если аргумент <em>count</em> не указан, команда возвращает текущее значение размера журнала. </dd> <dt> <strong>history</strong> <strong>nextid</strong> </dt> <dd> Возвращает номер следующего события, которое будет записано в журнал. Полезно, например, для вывода номера события в приглашении командной строки. </dd> <dt> <strong>history</strong> <strong>redo</strong> ?<em>event</em>? </dt> <dd> Повторно выполняет команду, указанную с помощью аргумента <em>event</em>. Значение аргумента по умолчанию <strong>-1</strong>. Эта команда вызывает переформирование журнала, см. <a href= #ПЕРЕФОРМИРОВАНИЕ>ниже</a>. <dd> </dl> <h2><a name=ПЕРЕФОРМИРОВАНИЕ></a>ПЕРЕФОРМИРОВАНИЕ ЖУРНАЛА</h2> <p> До версии 8.0 Tcl имел весьма сложный механизм переформирования журнала. Новый механизм несколько сокращен за счет старых опций <strong>substitute</strong> и <strong>words</strong>. (Взамен добавлена новая опция <strong>clear</strong>). <p>Опция <strong>redo</strong> позволяет переформировывать журнал значительно проще. При ее выполнении последнее событие изменяется таким образом, что удаляется "служебная" команда <strong>history</strong>, которая реально выполнялась, а вместо нее записывается та команда, которая необходима.</p> <p>Если вы хотите повторить прежнюю команду, не модифицируя журнал, выполните сначала команду <strong>history event</strong>, чтобы извлечь описание команды, а затем <strong>history add</strong>, чтобы выполнить ее.</p> </body> </html>