'\" '\" Copyright (c) 1993 The Regents of the University of California. '\" Copyright (c) 1994-1997 Sun Microsystems, Inc. '\" '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" '\" RCS: @(#) $Id: history.n,v 1.2 2003/11/24 05:09:59 bbbush Exp $ '\" '\" The definitions below are for supplemental macros used in Tcl/Tk '\" manual entries. '\" '\" .AP type name in/out ?indent? '\" Start paragraph describing an argument to a library procedure. '\" type is type of argument (int, etc.), in/out is either "in", "out", '\" or "in/out" to describe whether procedure reads or modifies arg, '\" and indent is equivalent to second arg of .IP (shouldn't ever be '\" needed; use .AS below instead) '\" '\" .AS ?type? ?name? '\" Give maximum sizes of arguments for setting tab stops. Type and '\" name are examples of largest possible arguments that will be passed '\" to .AP later. If args are omitted, default tab stops are used. '\" '\" .BS '\" Start box enclosure. From here until next .BE, everything will be '\" enclosed in one large box. '\" '\" .BE '\" End of box enclosure. '\" '\" .CS '\" Begin code excerpt. '\" '\" .CE '\" End code excerpt. '\" '\" .VS ?version? ?br? '\" Begin vertical sidebar, for use in marking newly-changed parts '\" of man pages. The first argument is ignored and used for recording '\" the version when the .VS was added, so that the sidebars can be '\" found and removed when they reach a certain age. If another argument '\" is present, then a line break is forced before starting the sidebar. '\" '\" .VE '\" End of vertical sidebar. '\" '\" .DS '\" Begin an indented unfilled display. '\" '\" .DE '\" End of indented unfilled display. '\" '\" .SO '\" Start of list of standard options for a Tk widget. The '\" options follow on successive lines, in four columns separated '\" by tabs. '\" '\" .SE '\" End of list of standard options for a Tk widget. '\" '\" .OP cmdName dbName dbClass '\" Start of description of a specific option. cmdName gives the '\" option's name as specified in the class command, dbName gives '\" the option's name in the option database, and dbClass gives '\" the option's class in the option database. '\" '\" .UL arg1 arg2 '\" Print arg1 underlined, then print arg2 normally. '\" '\" RCS: @(#) $Id: history.n,v 1.2 2003/11/24 05:09:59 bbbush Exp $ '\" '\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. .if t .wh -1.3i ^B .nr ^l \n(.l .ad b '\" # Start an argument description .de AP .ie !"\\$4"" .TP \\$4 .el \{\ . ie !"\\$2"" .TP \\n()Cu . el .TP 15 .\} .ta \\n()Au \\n()Bu .ie !"\\$3"" \{\ \&\\$1 \\fI\\$2\\fP (\\$3) .\".b .\} .el \{\ .br .ie !"\\$2"" \{\ \&\\$1 \\fI\\$2\\fP .\} .el \{\ \&\\fI\\$1\\fP .\} .\} .. '\" # define tabbing values for .AP .de AS .nr )A 10n .if !"\\$1"" .nr )A \\w'\\$1'u+3n .nr )B \\n()Au+15n .\" .if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n .nr )C \\n()Bu+\\w'(in/out)'u+2n .. .AS Tcl_Interp Tcl_CreateInterp in/out '\" # BS - start boxed text '\" # ^y = starting y location '\" # ^b = 1 .de BS .br .mk ^y .nr ^b 1u .if n .nf .if n .ti 0 .if n \l'\\n(.lu\(ul' .if n .fi .. '\" # BE - end boxed text (draw box now) .de BE .nf .ti 0 .mk ^t .ie n \l'\\n(^lu\(ul' .el \{\ .\" Draw four-sided box normally, but don't draw top of .\" box if the box started on an earlier page. .ie !\\n(^b-1 \{\ \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' .\} .el \}\ \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' .\} .\} .fi .br .nr ^b 0 .. '\" # VS - start vertical sidebar '\" # ^Y = starting y location '\" # ^v = 1 (for troff; for nroff this doesn't matter) .de VS .if !"\\$2"" .br .mk ^Y .ie n 'mc \s12\(br\s0 .el .nr ^v 1u .. '\" # VE - end of vertical sidebar .de VE .ie n 'mc .el \{\ .ev 2 .nf .ti 0 .mk ^t \h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' .sp -1 .fi .ev .\} .nr ^v 0 .. '\" # Special macro to handle page bottom: finish off current '\" # box/sidebar if in box/sidebar mode, then invoked standard '\" # page bottom macro. .de ^B .ev 2 'ti 0 'nf .mk ^t .if \\n(^b \{\ .\" Draw three-sided box if this is the box's first page, .\" draw two sides but no top otherwise. .ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c .el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c .\} .if \\n(^v \{\ .nr ^x \\n(^tu+1v-\\n(^Yu \kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c .\} .bp 'fi .ev .if \\n(^b \{\ .mk ^y .nr ^b 2 .\} .if \\n(^v \{\ .mk ^Y .\} .. '\" # DS - begin display .de DS .RS .nf .sp .. '\" # DE - end display .de DE .fi .RE .sp .. '\" # SO - start of list of standard options .de SO .SH "STANDARD OPTIONS" .LP .nf .ta 5.5c 11c .ft B .. '\" # SE - end of list of standard options .de SE .fi .ft R .LP See the \\fBoptions\\fR manual entry for details on the standard options. .. '\" # OP - start of full description for a single option .de OP .LP .nf .ta 4c Command-Line Name: \\fB\\$1\\fR Database Name: \\fB\\$2\\fR Database Class: \\fB\\$3\\fR .fi .IP .. '\" # CS - begin code excerpt .de CS .RS .nf .ta .25i .5i .75i 1i .. '\" # CE - end code excerpt .de CE .fi .RE .. .de UL \\$1\l'|0\(ul'\\$2 .. .TH history 3tcl "" Tcl "Tcl Built-In Commands" .BS '\" Note: do not modify the .SH NAME line immediately below! .SH NAME history \- 操縱歷史列表 .SH 總覽 SYNOPSIS \fBhistory \fR?\fIoption\fR? ?\fIarg arg ...\fR? .BE .SH 描述 DESCRIPTION .PP \fBhistory\fR 命令完成與記錄在一個歷史列表中的最近執行過的命令有關的一些操作中的一個。每個記錄的命令被作為一個“事件”來參照。使用下列形式給 \fBhistory\fR 命令指定的一個事件: .IP [1] 一個數: 如果是正數,它用這個數來參照事件(所有事件多被從 1 開始計數)。如果是負數,它選擇相對當前事件的一個事件(\fB\-1\fR 參照上一個事件,\fB\-2\fR 參照大上一個,以此類推)。事件 \fB0\fP 參照當前事件。 .IP [2] 一個字串: 選擇匹配這個字串的最新近的事件。在兩種情況下一個事件被考慮為匹配這個字串,要麼這個字串與這個命令的最前面的字元相同,要麼這個字串以與 \fBstring match\fR 命令相同的方式匹配這個事件。 .PP \fBhistory\fR 命令接受所有下列形式: .TP \fBhistory\fR 同於下面描述的 \fBhistory info\fR。 .TP \fBhistory add\fI command \fR?\fBexec\fR? 把 \fIcommand\fR 引數作為一個新事件新增到歷史列表中。如果指定了 \fBexec\fR(或其縮寫) 則還執行這個命令並返回它的結果。如果沒有指定 \fBexec\fR 則返回一個空串作為結果。 .TP \fBhistory change\fI newValue\fR ?\fIevent\fR? 把給一個事件記錄的值替代(replace)為 \fInewValue\fR。 \fIEvent\fR 指定要替代的事件,預設為當前 (\fIcurrent\fR) 事件(不是事件 \fB\-1\fR)。這個命令用在實現新形式的歷史替換(substitution)的命令中,和用在想用透過替換建立的命令替代當前事件(呼叫這個替換的事件)的命令中。 返回值是一個空串。 .TP \fBhistory clear\fR 刪除歷史列表。保持當前保留限制。重置歷史事件數。 .TP \fBhistory event\fR ?\fIevent\fR? 返回由 \fIevent\fR 給出的事件的值。 \fIEvent\fR 預設為 \fB\-1\fR。 .TP \fBhistory info \fR?\fIcount\fR? 返回一個格式化了字串(用於人們閱讀),它給出在歷史列表中除了當前事件之外的每個事件的事件號和內容。如果指定了 \fIcount\fR,則只返回新近的 \fIcount\fR 個事件。 .TP \fBhistory keep \fR?\fIcount\fR? 使用這個命令來變更歷史列表的大小為 \fIcount\fR 個事件。最初,在歷史列表中保留 20 個事件。如果未指定 \fIcount\fR ,則返回當前的保留限制。 .TP \fBhistory nextid\fR 返回要記錄在歷史記錄中的下一個事件的號碼。這物件在命令列提示符下輸出事件號這樣的事有用。 .TP \fBhistory redo \fR?\fIevent\fR? 重新執行由 \fIevent\fR 指示的命令並返回它的結果。\fIEvent\fR 預設為 \fB\-1\fR。這個命令導致歷史修訂: 詳情見下面的段落。 .SH "歷史修訂 HISTORY REVISION" .PP 8.0 之前 的 Tcl 有一個複雜的歷史修訂機制。當前的機制受到了更多的限制,並且去除了老的歷史操作 \fBsubstitute\fP 和 \fBwords\fP 。(作為安慰,添加了 \fBclear\fP 操作。) .PP 歷史選項 \fBredo\fR 導致非常簡單的“歷史修訂”。在呼叫這個選項的時候,修改最新近的事件來淘汰歷史命令(的記錄)並用歷史命令的結果替換它。如果你打算重做一個事件而不修改歷史列表,則使用 \fBevent\fP 操作來檢索某些事件,並使用 \fBadd\fP 操作來向歷史列表新增它並執行它。 .SH 關鍵字 KEYWORDS event, history, record .SH "[中文版維護人]" .B 寒蟬退士 .SH "[中文版最新更新]" .B 2001/09/03 .SH "《中國 Linux 論壇 man 手冊頁翻譯計劃》:" .BI http://cmpp.linuxforum.net .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR