aboutsummaryrefslogtreecommitdiff
path: root/readline/inc-hist.texi
diff options
context:
space:
mode:
authorK. Richard Pixley <rich@cygnus>1991-11-13 21:01:55 +0000
committerK. Richard Pixley <rich@cygnus>1991-11-13 21:01:55 +0000
commit681fa9a853842192e71ead32593bdbff36d85b73 (patch)
tree8cd54851330d6c2eaf39c7421de5a778046056e4 /readline/inc-hist.texi
parent7785cbdd0b5afbbcc672b6f8c2d154e0823319d4 (diff)
downloadgdb-681fa9a853842192e71ead32593bdbff36d85b73.zip
gdb-681fa9a853842192e71ead32593bdbff36d85b73.tar.gz
gdb-681fa9a853842192e71ead32593bdbff36d85b73.tar.bz2
Initial revision
Diffstat (limited to 'readline/inc-hist.texi')
-rwxr-xr-xreadline/inc-hist.texi188
1 files changed, 188 insertions, 0 deletions
diff --git a/readline/inc-hist.texi b/readline/inc-hist.texi
new file mode 100755
index 0000000..9bbb575
--- /dev/null
+++ b/readline/inc-hist.texi
@@ -0,0 +1,188 @@
+@ifinfo
+This file documents the GNU History library.
+
+Copyright (C) 1988 Free Software Foundation, Inc.
+Authored by Brian Fox.
+
+Permission is granted to make and distribute verbatim copies of this manual
+provided the copyright notice and this permission notice are preserved on
+all copies.
+@end ifinfo
+
+@ignore
+Permission is granted to process this file through Tex and print the
+results, provided the printed document carries copying permission notice
+identical to this one except for the removal of this paragraph (this
+paragraph not being relevant to the printed manual).
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided also that the
+GNU Copyright statement is available to the distributee, and provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions.
+@end ignore
+
+@node History Top,,,
+@appendix Command Line History
+@ifinfo
+This file is meant to be an inclusion in the documentation of programs
+that use the history library features. There is also a standalone
+document, entitled @file{history.texinfo}.
+@end ifinfo
+
+This Appendix describes the GNU History library, a programming tool that
+provides a consistent user interface for recalling lines of previously
+typed input.
+
+@menu
+* Introduction to History:: What is the GNU History library for?
+* History Interaction:: What it feels like using History as a user.
+@end menu
+
+@node Introduction to History, History Interaction, History Top, Top
+@appendixsec Introduction to History
+
+Many programs read input from the user a line at a time. The GNU history
+library is able to keep track of those lines, associate arbitrary data with
+each line, and utilize information from previous lines in making up new
+ones.
+
+The programmer using the History library has available to him functions
+for remembering lines on a history stack, associating arbitrary data
+with a line, removing lines from the stack, searching through the stack
+for a line containing an arbitrary text string, and referencing any line
+on the stack directly. In addition, a history @dfn{expansion} function
+is available which provides for a consistent user interface across many
+different programs.
+
+When you use programs written with the History library, you have the
+benefit of a consistent user interface, with a set of well-known
+commands for manipulating the text of previous lines and using that text
+in new commands. The basic history manipulation commands are similar to
+the history substitution used by Csh.
+
+GNU programs often also use the Readline library, which includes history
+manipulation by default, and has the added advantage of Emacs style
+command line editing.
+
+@node History Interaction, , Introduction to History, Top
+@appendixsec History Interaction
+@cindex expansion
+
+The History library provides a history expansion feature that is similar
+to the history expansion in Csh. The following text describes what
+syntax features are available.
+
+History expansion takes place in two parts. The first is to determine
+which line from the previous history should be used during substitution.
+The second is to select portions of that line for inclusion into the
+current one. The line selected from the previous history is called the
+@dfn{event}, and the portions of that line that are acted upon are
+called @dfn{words}. The line is broken into words in the same fashion
+used by the Bash shell, so that several words surrounded by quotes are
+treated as if they were a single word.
+
+@menu
+* Event Designators:: How to specify which history line to use. *
+Word Designators:: Specifying which words are of interest. *
+Modifiers:: Modifying the results of susbstitution.
+@end menu
+
+@node Event Designators, Word Designators, , History Interaction
+@appendixsubsec Event Designators
+@cindex event designators
+
+An event designator is a reference to a command line entry in the
+history list.
+
+@table @asis
+
+@item @code{!}
+Start a history subsititution, except when followed by a space, tab, or
+the end of the line; or by @samp{=} or @samp{(}.
+
+@item @code{!!}
+Refer to the previous command. This is a synonym for @code{!-1}.
+
+@item @code{!@var{n}}
+Refer to command line @var{n}.
+
+@item @code{!-@var{n}}
+Refer to the command line @var{n} lines back.
+
+@item @code{!@var{string}}
+Refer to the most recent command starting with @var{string}.
+
+@item @code{!?@var{string}}[@code{?}]
+Refer to the most recent command containing @var{string}.
+
+@end table
+
+@node Word Designators, Modifiers, Event Designators, History Interaction
+@appendixsubsec Word Designators
+
+A @samp{:} separates the event specification from the word designator. It
+can be omitted if the word designator begins with a @samp{^}, @samp{$},
+@samp{*} or @samp{%}. Words are numbered from the beginning of the line,
+with the first word being denoted by a 0 (zero).
+
+@table @code
+
+@item 0 (zero)
+The zero'th word. For many applications, this is the command word.
+
+@item n
+The @var{n}'th word.
+
+@item ^
+The first argument. that is, word 1.
+
+@item $
+The last argument.
+
+@item %
+The word matched by the most recent @code{?@var{string}?} search.
+
+@item @var{x}-@var{y}
+A range of words; @code{-@var{y}} abbreviates @code{0-@var{y}}.
+
+@item *
+All of the words, excepting the zero'th. This is a synonym for @samp{1-$}.
+It is not an error to use @samp{*} if there is just one word in the event.
+The empty string is returned in that case.
+
+@end table
+
+@node Modifiers, , Word Designators, History Interaction
+@appendixsubsec Modifiers
+
+After the optional word designator, you can add a sequence of one or more
+of the following modifiers, each preceded by a @samp{:}.
+
+@table @code
+
+@item #
+The entire command line typed so far. This means the current command,
+not the previous command, so it really isn't a word designator, and doesn't
+belong in this section.
+
+@item h
+Remove a trailing pathname component, leaving only the head.
+
+@item r
+Remove a trailing suffix of the form @samp{.@var{suffix}}, leaving the basename.
+
+@item e
+Remove all but the suffix.
+
+@item t
+Remove all leading pathname components, leaving the tail.
+
+@item p
+Print the new command but do not execute it. This takes effect
+immediately, so it should be the last specifier on the line.
+
+@end table