[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[no subject]
From: |
Gavin D. Smith |
Date: |
Tue, 10 Jan 2023 13:16:11 -0500 (EST) |
branch: master
commit e46381b16ce1d03afb7ca94b2eb0be5801d43477
Author: Gavin Smith <gavinsmith0123@gmail.com>
AuthorDate: Tue Jan 10 17:06:19 2023 +0000
* doc/info-stnd.texi (Invoking Info): Move later in the
manual so that a user reading through the manual from
start to finish gets information on interactive use first.
---
ChangeLog | 6 +
doc/info-stnd.texi | 3100 ++++++++++++++++++++++++++--------------------------
2 files changed, 1557 insertions(+), 1549 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 5410f7cf9e..2f46df7c03 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2023-01-10 Gavin Smith <gavinsmith0123@gmail.com>
+
+ * doc/info-stnd.texi (Invoking Info): Move later in the
+ manual so that a user reading through the manual from
+ start to finish gets information on interactive use first.
+
2023-01-10 Gavin Smith <gavinsmith0123@gmail.com>
* doc/info-stnd.texi (Invoking Info): Relegate list of supported
diff --git a/doc/info-stnd.texi b/doc/info-stnd.texi
index 20e297c738..25d98209e7 100644
--- a/doc/info-stnd.texi
+++ b/doc/info-stnd.texi
@@ -65,7 +65,6 @@ and @key{Backspace}) to move forwards and backwards in it.
@menu
* Stand-alone Info:: What is Info?
-* Invoking Info:: Options you can pass on the command line.
* Cursor Commands:: Commands which move the cursor within a node.
* Scrolling Commands:: Commands for reading the text within a node.
* Node Commands:: Commands for selecting a new node.
@@ -75,6 +74,7 @@ and @key{Backspace}) to move forwards and backwards in it.
* Window Commands:: Commands which manipulate multiple windows.
* Printing Nodes:: How to print out the contents of a node.
* Miscellaneous Commands:: A few commands that defy categorization.
+* Invoking Info:: Options you can pass on the command line.
* Variables:: How to change the default behavior of Info.
* Colors and Styles:: Customize the colors used by Info.
* Custom Key Bindings:: How to define your own key-to-command bindings.
@@ -116,1847 +116,1849 @@ Please report bugs in this stand-alone Info program to
sent to @email{bug-gnu-emacs@@gnu.org}.
-@node Invoking Info
-@chapter Invoking Info
-
-@cindex Info, invoking
-@cindex invoking Info
-@cindex command line options
-@cindex options, command line
-@cindex arguments, command line
-
-GNU Info accepts several options to control the initial node or nodes
-being viewed, and to specify which directories to search for Info files.
-Here is a template showing an invocation of GNU Info from the shell:
-
-@example
-info [@var{option}@dots{}] [@var{manual}] [@var{menu-or-index-item}@dots{}]
-@end example
+@node Cursor Commands
+@chapter Moving the Cursor
+@cindex cursor, moving
+@cindex moving the cursor
-Info will look for an entry called @var{manual} in the directory
-files, which are named @file{dir}, that it finds in its search path.
-The search is case-insensitive and considers substrings.
-(If @var{manual} is not given, by default Info displays a composite
-directory listing, constructed by combining the @file{dir} files.)
-A basic example:
+GNU Info has several commands which allow you to move the cursor about
+the screen.
+The notation used in this manual to describe keystrokes
+is the same as the notation used within the Emacs manual
+(@pxref{User Input,,, emacs, The GNU Emacs Manual}).
+@kbd{C-@var{x}} means press the @key{CTRL} key and the
+key @var{x}. @kbd{M-@var{x}} means press the @key{META} key and
+the key @var{x}. On many terminals the @key{META} key is known as
+the @key{ALT} key. @key{SPC} is the space bar. The other keys are
+usually called by the names printed on them.
-@example
-info coreutils
-@end example
+The following table lists the basic cursor movement commands in Info.
+Each entry consists of the key sequence you should type to execute the
+cursor movement, the @kbd{M-x} command name (displayed
+in parentheses), and a short description of what the command
+does.@footnote{@kbd{M-x} is also a command;
+it invokes @code{execute-extended-command}, letting you run a command
+by name. @xref{M-x, , Executing an extended command, emacs, The GNU
+Emacs Manual}, for more detailed information.}
+All of the cursor motion commands can take a @dfn{numeric} argument
+(see @ref{Miscellaneous Commands, @code{universal-argument}} to find
+out how to supply them). With a numeric argument, the motion commands
+are simply executed that many times; for example, a numeric argument
+of 4 given to @code{next-line} causes the cursor to move down 4 lines.
+With a negative numeric argument, the motion is reversed; an argument
+of @minus{}4 given to the @code{next-line} command would cause the
+cursor to move @emph{up} 4 lines.
-This looks for an entry labelled @code{coreutils}, or
-@code{Coreutils}, etc., and if found, displays the referenced file
-(e.g., @file{coreutils.info}) at the location given.
-@code{info coreu} will find it too, if there is no better match.
+@table @asis
+@item @kbd{C-n} (@code{next-line})
+@itemx @key{DOWN} (an arrow key)
+@kindex C-n
+@kindex DOWN (an arrow key)
+@findex next-line
+Move the cursor down to the next line.
-Another example:
+@item @kbd{C-p} (@code{prev-line})
+@itemx @key{UP} (an arrow key)
+@kindex C-p
+@kindex UP (an arrow key)
+@findex prev-line
+Move the cursor up to the previous line.
-@example
-info ls
-@end example
+@item @kbd{C-a} (@code{beginning-of-line})
+@itemx @key{Home} (on DOS/Windows only)
+@kindex C-a, in Info windows
+@kindex Home
+@findex beginning-of-line
+Move the cursor to the start of the current line.
-Assuming the normal @code{dir} entry for @code{ls}, this will show the
-@code{ls} documentation, which happens to be within the
-@code{coreutils} manual rather than a separate manual. The @code{dir}
-entries can point to any node within a manual, so that users don't
-have to be concerned with the exact structure used by different
-authors.
+@item @kbd{C-e} (@code{end-of-line})
+@itemx @key{End} (on DOS/Windows only)
+@kindex C-e, in Info windows
+@kindex End
+@findex end-of-line
+Move the cursor to the end of the current line.
-@cindex compressed Info files
-@cindex files, compressed
-@cindex Info files, compressed
-If no entry is found in the directories, Info looks for a file called
-@var{manual} in its search path. If not found, Info looks for it
-with the file extensions @file{.info}, @file{-info}, and @file{.inf}.
-For each of these known extensions, if a regular file is not found,
-Info looks for a compressed file.@footnote{Info supports files
-compressed with @code{gzip}, @code{xz}, @code{bzip2}, @code{lzip},
-@code{lzma}, @code{compress} and @code{yabba} programs, assumed
-to have extensions @file{.z}, @file{.gz}, @file{.xz}, @file{.bz2},
-@file{.lz}, @file{.lzma}, @file{.Z}, and @file{.Y} respectively.
+@item @kbd{C-f} (@code{forward-char})
+@itemx @key{RIGHT} (an arrow key)
+@kindex C-f, in Info windows
+@kindex RIGHT (an arrow key)
+@findex forward-char
+Move the cursor forward a character.
-On MS-DOS, Info allows for the Info
-extension, such as @code{.inf}, and the short compressed file extensions,
-such as @file{.z} and @file{.gz}, to be merged into a single extension,
-since DOS doesn't allow more than a single dot in the basename of
-a file. Thus, on MS-DOS, if Info looks for @file{bison}, file names
-like @file{bison.igz} and @file{bison.inz} will be found and decompressed
-by @code{gunzip}.}
+@item @kbd{C-b} (@code{backward-char})
+@itemx @key{LEFT} (an arrow key)
+@kindex C-b, in Info windows
+@kindex LEFT (an arrow key)
+@findex backward-char
+Move the cursor backward a character.
-You can specify the name of a node to visit with the @code{--node} or
-@code{-n} option. Alternatively, you can specify the file and node
-together using the same format that occurs in Info cross-references.
-These two examples both load the @samp{Files} node within the
-@samp{emacs} manual:
+@item @kbd{M-f} (@code{forward-word})
+@itemx @kbd{C-@key{RIGHT}} (on DOS/Windows only)
+@kindex M-f, in Info windows
+@kindex C-RIGHT
+@findex forward-word
+Move the cursor forward a word.
-@example
-info emacs -n Files
-info '(emacs)Files'
-@end example
+@item @kbd{M-b} (@code{backward-word})
+@itemx @kbd{C-@key{LEFT}} (on DOS/Windows only)
+@kindex M-b, in Info windows
+@kindex C-LEFT
+@findex backward-word
+Move the cursor backward a word.
-@cindex absolute Info file names
-@cindex relative Info file names
-@cindex file names, relative
-@cindex Info files, relative
-If you want to load a file without looking in the search path, specify
-@var{manual} either as an absolute path, or as a path relative to the
-current directory which contains at least one slash character. (You
-can also use the @code{--file} option for similar behavior, described
-below.)
-Examples:
+@item @kbd{M-<} (@code{beginning-of-node})
+@itemx @kbd{C-@key{Home}} (on DOS/Windows only)
+@itemx @kbd{b}
+@kindex b, in Info windows
+@kindex M-<
+@kindex C-Home
+@findex beginning-of-node
+Move the cursor to the start of the current node.
-@example
-info /usr/local/share/info/bash.info
-info ./document.info
-@end example
+@item @kbd{M->} (@code{end-of-node})
+@itemx @kbd{C-@key{End}} (on DOS/Windows only)
+@itemx @kbd{e}
+@kindex M->
+@kindex e, in Info windows
+@kindex C-End
+@findex end-of-node
+Move the cursor to the end of the current node.
-@noindent
-Info looks for @var{manual} only in the explicitly specified
-directory, and adds that directory to its search path.
+@item @kbd{M-r} (@code{move-to-window-line})
+@kindex M-r
+@findex move-to-window-line
+Move the cursor to a specific line of the window. Without a numeric
+argument, @code{M-r} moves the cursor to the start of the line in the
+center of the window. With a numeric argument of @var{n}, @code{M-r}
+moves the cursor to the start of the @var{n}th line in the window.
+@end table
-@anchor{command-line menu items}
-@cindex menu, following
-Info treats any remaining arguments as the names of menu items, or
-(see below) index entries. The first argument is a menu item in the
-@samp{Top} node of the file loaded, the second argument is a menu item
-in the first argument's node, etc. You can move to the node of your
-choice by specifying the menu names which describe the path to that
-node. For example,
-@example
-info emacs buffers
-info texinfo Overview 'Using Texinfo'
-@end example
+@node Scrolling Commands
+@chapter Moving Text Within a Window
+@cindex scrolling
-@noindent
-The first example selects the menu item @samp{Buffers} in the node
-@samp{(emacs)Top}. The second example loads the @file{texinfo} file and
-looks in its top-level menu for a @samp{Overview} item, looks in the menu
-of the node referenced, and finally displays the node referenced by the
-@samp{Using Texinfo} item.
+Sometimes you are looking at a screenful of text, and only part of the
+current paragraph you are reading is visible on the screen. The
+commands detailed in this section are used to shift which part of the
+current node is visible on the screen.
-If there was only one @var{menu-or-index-item} argument and it wasn't
-found as a menu item, Info looks for it as an index entry. For example:
+@table @asis
+@item @key{SPC} (@code{scroll-forward})
+@kindex SPC, in Info windows
+@itemx @key{NEXT}
+@kindex NEXT
+@findex scroll-forward
+Shift the text in this window up. That is, show more of the node which
+is currently below the bottom of the window. With a numeric argument,
+show that many more lines at the bottom of the window; a numeric
+argument of 4 would shift all of the text in the window up 4 lines
+(discarding the top 4 lines), and show you four new lines at the bottom
+of the window. Without a numeric argument, @key{SPC} takes the bottom
+two lines of the window and places them at the top of the window,
+redisplaying almost a completely new screenful of lines. If you are at
+the end of a node, @key{SPC} takes you to the ``next'' node, so that you can
+read an entire manual from start to finish by repeating @key{SPC}.
-@example
-info libc printf
-@end example
+@kindex PageDown
+The @key{NEXT} key is known as the @key{PageDown} key on some
+keyboards.
-@noindent
-This loads the libc Info manual and first looks for @code{printf} in
-the top-level menu as usual; since it isn't there (at this writing),
-it then looks in the indices. If it's found there (which it is),
-the relevant node at the given location is displayed.
+@item @kbd{C-v} (@code{scroll-forward-page-only})
+@kindex C-v
+@findex scroll-forward-page-only
+Shift the text in this window up. This is identical to the @key{SPC}
+operation above, except that it never scrolls beyond the end of the
+current node.
-A complete list of options follows.
+@item @code{@kbd{M-x} scroll-forward-page-only-set-window}
+@findex scroll-forward-page-only-set-window
+Scroll forward, like with @kbd{C-v}, but if a numeric argument is
+specified, it becomes the default scroll size for subsequent
+@code{scroll-forward} and @code{scroll-backward} commands and their
+ilk.
-@table @code
-@anchor{--all}
-@item --all
-@itemx -a
-@cindex @code{--all} (@code{-a}) command line option
-Find all files matching @var{manual}. Three usage patterns are
-supported, as follows.
-
-First, if @code{--all} is used together with @option{--where},
-@command{info} prints the names of all matching files found on
-standard output (including @samp{*manpages*} if relevant) and exits.
-
-Second, if @code{--all} is used together with @option{--output}, the
-contents of all matched files are dumped to the specified output
-file.
-
-Otherwise, an interactive session is initiated. If more than one file
-matches, a menu node is displayed listing the matches and allowing you
-to select one. This menu node can be brought back at any time by
-pressing @kbd{C-x f}. If there is only one match, @command{info}
-starts as usual.
+@item @key{DEL} (@code{scroll-backward})
+@kindex DEL, in Info windows
+@item @key{PREVIOUS}
+@kindex PREVIOUS
+@findex scroll-backward
+Shift the text in this window down. The inverse of
+@code{scroll-forward}.
+If you are at the start of a node, @key{DEL} takes you to the
+``previous'' node, so that you can read an entire manual from finish to
+start by repeating @key{DEL}. The default scroll size can be changed by
+invoking the (@code{scroll-backward-page-only-set-window}) command with
+a numeric argument.
-When used with the @option{--index-search} option, @command{info}
-displays a menu of matching index entries (just as the
-@code{virtual-index} command does; see @ref{Index Commands}).
+@kindex BS (backspace)
+If your keyboard lacks the @key{DEL} key, look for a key called
+@key{BS}, or @samp{Backspace}, sometimes designated with an arrow which
+points to the left, which should perform the same function.
-The @option{--node} option cannot be used together with this option.
+@kindex PageUp
+The @key{PREVIOUS} key is the @key{PageUp} key on many keyboards. Emacs
+refers to it by the name @key{PRIOR}.
-@anchor{--apropos}
-@item --apropos=@var{string}
-@itemx -k @var{string}
-@cindex @code{--apropos} (@code{-k}) command line option
-@cindex Searching all indices
-@cindex Info files@r{, searching all indices}
-@cindex Apropos@r{, in Info files}
-Specify a string to search in every index of every Info file installed
-on your system. Info looks up the named @var{string} in all the
-indices it can find, prints the results to standard output, and then
-exits. If you are not sure which Info file explains certain issues,
-this option is your friend. (If your system has a lot of Info files
-installed, searching all of them might take some time!)
+@item @kbd{M-v} (@code{scroll-backward-page-only})
+@kindex M-v
+@findex scroll-backward-page-only
+Shift the text in this window down. The inverse of
+@code{scroll-forward-page-only}. Does not scroll beyond the start of
+the current node. The default scroll size can be changed by invoking
+the @code{scroll-backward-page-only-set-window} command with a numeric
+argument.
-You can invoke the apropos command from inside Info; see
-@ref{Searching Commands}.
+@item @code{@kbd{M-x} scroll-backward-page-only-set-window}
+@findex scroll-backward-page-only-set-window
+Scroll backward, like with @kbd{M-v}, but if a numeric argument is
+specified, it becomes the default scroll size for subsequent
+@code{scroll-forward} and @code{scroll-backward} commands.
-@item --debug=@var{number}
-@itemx -x @var{number}
-@cindex @code{--debug} (@code{-x}) command line option
-@cindex debugging
-Print additional debugging information. The argument specifies the
-verbosity level, so a higher level includes all the information from
-lower levels. For all available debugging output, use
-@option{-x@tie{}-1}. Info version @value{VERSION} has these levels:
+@item @code{@kbd{M-x} down-line}
+@findex down-line
+Scroll forward by one line. With a numeric argument, scroll forward
+that many lines.
-@table @code
-@item 1
-Print information about file handling, such as looking for @file{dir}
-files and nodes written with @samp{--output}.
+@item @code{@kbd{M-x} up-line}
+@findex up-line
+Scroll backward one line. With a numeric argument, scroll backward that
+many lines.
-@item 2
-Print operations relating to @env{INFOPATH}.
+@item @code{@kbd{M-x} scroll-half-screen-down}
+@findex scroll-half-screen-down
+Scroll forward by half of the screen size. With a numeric argument,
+scroll that many lines. If an argument is specified, it becomes the new
+default number of lines to scroll for subsequent
+@code{scroll-half-screen-down} and @code{scroll-half-screen-up} commands.
-@item 3
-Print information about node searching.
+@item @code{@kbd{M-x} scroll-half-screen-up}
+@findex scroll-half-screen-up
+Scroll back by half of the screen size. With a numeric argument,
+scroll that many lines. If an argument is specified, it becomes the new
+default number of lines to scroll for subsequent
+@code{scroll-half-screen-down} and @code{scroll-half-screen-up}
+commands.
@end table
-Debugging output goes to standard error.
+@cindex scrolling through node structure
+The @code{scroll-forward} and @code{scroll-backward} commands can also
+move forward and backward through the node structure of the file. If
+you press @key{SPC} while viewing the end of a node, or @key{DEL} while
+viewing the beginning of a node, what happens is controlled by the
+variable @code{scroll-behavior} (@pxref{scroll-behavior}).
-@item --directory @var{directory-path}
-@itemx -d @var{directory-path}
-@cindex @code{--directory} (@code{-d}) command line option
-@cindex directory path
-@cindex @env{INFOPATH}
-@anchor{INFOPATH}
-Add @var{directory-path} to the list of directory paths searched
-when Info needs to find a file. You may issue @code{--directory}
-multiple times; once for each directory which contains Info files,
-or with a list of such directories separated by a colon (or semicolon
-on MS-DOS/MS-Windows).
+The @code{scroll-forward-page-only} and @code{scroll-backward-page-only}
+commands never scroll beyond the current node.
-Directories specified in the environment variable @env{INFOPATH} are added
-to the directories specified with @code{--directory}, if any. The value of
-@code{INFOPATH} is a list of directories usually separated by a colon;
-on MS-DOS/MS-Windows systems, the semicolon is used. If the value of
-@code{INFOPATH} ends with a colon (or semicolon on MS-DOS/MS-Windows),
-the initial list of directories is constructed by appending the
-build-time default to the value of @code{INFOPATH}.
+@table @asis
+@item @kbd{C-l} (@code{redraw-display})
+@kindex C-l
+@findex redraw-display
+Redraw the display from scratch, or shift the line containing the cursor
+to a specified location. With no numeric argument, @samp{C-l} clears
+the screen, and then redraws its entire contents. Given a numeric
+argument of @var{n}, the line containing the cursor is shifted so that
+it is on the @var{n}th line of the window.
-If you do not define @code{INFOPATH}, Info uses a default path defined
-when Info was built as the initial list of directories.
+@item @kbd{C-x @kbd{w}} (@code{toggle-wrap})
+@kindex C-w
+@findex toggle-wrap
+Toggles the state of line wrapping in the current window. Normally,
+lines which are longer than the screen width @dfn{wrap}, i.e., they are
+continued on the next line. Lines which wrap have a @samp{\} appearing
+in the rightmost column of the screen. You can cause such lines to be
+terminated at the rightmost column by changing the state of line
+wrapping in the window with @kbd{C-x w}. When a line which needs more
+space than one screen width to display is displayed, a @samp{$} appears
+in the rightmost column of the screen, and the remainder of the line is
+invisible. When long lines are truncated, the mode line displays the
+@samp{$} character near its left edge.
+@end table
-Regardless of whether @code{INFOPATH} is defined, the default
-documentation directory defined when Info was built is added to the
-search path. If you do not want this directory to be included, set
-the @code{infopath-no-defaults} variable to @code{On}
-(@pxref{infopath-no-defaults}).
-
-If the list of directories contains the element @code{PATH}, that
-element is replaced by a list of directories derived from the value of
-the environment variable @code{PATH}. Each path element of the form
-@var{dir/base} is replaced by @var{dir}@code{/share/info} or
-@var{dir}@code{/info}, provided that directory exists.
-@item --dribble=@var{file}
-@cindex @code{--dribble} command line option
-@cindex keystrokes, recording
-@cindex remembering user keystrokes
-Specify a file where all user keystrokes will be recorded. This file
-can be used later to replay the same sequence of commands, see the
-@samp{--restore} option below.
+@node Node Commands
+@chapter Selecting a Node
+@cindex nodes, selection of
-@item --file @var{manual}
-@itemx -f @var{manual}
-@cindex @code{--file} (@code{-f}) command line option
-@cindex Info manual, specifying initial
-@cindex initial node, specifying
-@cindex startup node, specifying
-Specify a particular manual to visit without looking its name up in any
-@file{dir} files.
+This section details the numerous Info commands which select a new node
+to view in the current window.
-With this option, it starts by trying to visit
-@code{(@var{manual})Top}, i.e., the @code{Top} node in (typically)
-@file{@var{manual}.info}. As above, it tries various file extensions
-to find the file. If no such file (or node) can be found, Info exits
-without doing anything. As with the @file{dir} lookup described above,
-any extra @var{menu-or-index-item} arguments are used to locate a node
-within the loaded file.
+The most basic node commands are @samp{n}, @samp{p}, @samp{u}, and
+@samp{l}.
-If @var{manual} is an absolute file name, or begins with @file{./} or
-@file{../}, or contains an intermediate directory, Info will only look
-for the file in the directory specified, and add this directory to
-@code{INFOPATH}. (This is the same as what happens when @code{--file}
-is not given.)
+When you are viewing a node, the top line of the node contains some Info
+@dfn{pointers} which describe where the next, previous, and up nodes
+are. Info uses this line to move about the node structure of the file
+when you use the following commands:
-@item --help
-@itemx -h
-@cindex @code{--help} (@code{-h}) command line option
-Output a brief description of the available Info command-line options.
+@table @asis
+@item @kbd{n} (@code{next-node})
+@itemx @kbd{C-@key{NEXT}} (on DOS/Windows only)
+@kindex n
+@kindex C-NEXT
+@findex next-node
+Select the `Next' node.
-@item --index-search @var{string}
-@cindex @code{--index-search} command line option
-@cindex index search, selecting from the command line
-@cindex online help, using Info as
-After processing all command-line arguments, go to the index in the
-selected Info file and search for index entries which match
-@var{string}. If such an entry is found, the Info session begins with
-displaying the node pointed to by the first matching index entry;
-press @kbd{,} to step through the rest of the matching entries. If no
-such entry exists, print @samp{no entries found} and exit with nonzero
-status. This can be used from another program as a way to provide
-online help, or as a quick way of starting to read an Info file at a
-certain node when you don't know the exact name of that node.
+@kindex C-PgDn
+The @key{NEXT} key is known as the @key{PgDn} key on some
+keyboards.
-When used with the @option{--all} option, @command{info}
-displays a menu of matching index entries (just as the
-@code{virtual-index} command does; see @ref{Index Commands}).
+@item @kbd{p} (@code{prev-node})
+@itemx @kbd{C-@key{PREVIOUS}} (on DOS/Windows only)
+@kindex p
+@kindex C-PREVIOUS
+@findex prev-node
+Select the `Prev' node.
-This command can also be invoked from inside Info; @pxref{Searching
-Commands}.
+@kindex C-PgUp
+The @key{PREVIOUS} key is known as the @key{PgUp} key on some
+keyboards.
-@item --init-file @var{INIT-FILE}
-@anchor{--init-file}
-@cindex @code{--init-file} command line option
-Read key bindings and variable settings from @var{INIT-FILE} instead
-of the @file{.infokey} file in your home directory. @xref{Custom Key
-Bindings}.
-
-@item --node @var{nodename}
-@itemx -n @var{nodename}
-@cindex @code{--node} (@code{-n}) command line option
-@cindex node, selecting from the command line
-Specify a particular node to visit in the initial file that Info
-loads. You may specify @code{--node} multiple times: for an interactive
-Info, each @var{nodename} is visited in its own window; for a
-non-interactive Info (such as when @code{--output} is given) each
-@var{nodename} is processed sequentially.
-
-You can specify both the file and node to the @code{--node} option
-using the usual Info syntax, but don't forget to escape the open and
-close parentheses and whitespace from the shell; for example:@*
-@t{info --node "(emacs)Buffers"}
-
-@item --output @var{file}
-@itemx -o @var{file}
-@cindex @code{--output} (@code{-o}) command line option
-@cindex file, outputting to
-@cindex outputting to a file
-Direct output to @var{file}. Each node that Info visits will be
-output to @var{file} instead of interactively viewed. A value of
-@code{-} for @var{file} means standard output.
-
-@item --no-raw-escapes
-@itemx --raw-escapes, -R
-@anchor {--raw-escapes}
-@cindex @code{--raw-escapes} (@code{-R}) command line option
-@cindex colors in documents
-@cindex ANSI escape sequences in documents
-By default, Info passes SGR terminal control sequences (also known as
-ANSI escape sequences) found in documents directly through to the
-terminal. If you use the @code{--no-raw-escapes} options, these
-sequences are displayed as other control characters are; for example, an
-@key{ESC} byte is displayed as @samp{^[}. The @code{--raw-escapes} and
-@code{-R} options do not do anything, but are included for completeness.
-
-@ignore
-@cindex man pages, bold and underline
-@vindex GROFF_SGR
-Some versions of Groff (@pxref{Top,,,groff,Groff}) produce man pages
-with ANSI escape sequences for bold, italics, and underlined
-characters, and for colorized text. If your @command{man} command
-uses a version of Groff that does this (original GNU Groff does), and
-your terminal supports these sequences, Info will display any bold or
-underlined text in man pages. Some distributions have modified Groff
-to require setting the @code{GROFF_SGR} environment variable to get
-these sequences. @xref{Invoking grotty,,, groff, Groff}.
-@end ignore
-
-@item --restore=@var{dribble-file}
-@cindex @code{--restore} command line option
-@cindex replaying recorded keystrokes
-Read keystrokes from @var{dribble-file}, presumably recorded during
-previous Info session (see the description of the @samp{--dribble}
-option above). When the keystrokes in the files are all read, Info
-reverts its input to the usual interactive operation.
-
-@item --show-malformed-multibytes
-@itemx --no-show-malformed-multibytes
-@cindex @code{--show-malformed-multibytes} command line option
-@cindex malformed multibyte sequences, showing
-Show malformed multibyte sequences in the output. By default, such
-sequences are dropped.
-
-@anchor{--show-options}
-@item --show-options
-@itemx --usage
-@itemx -O
-@cindex @code{--show-options} (@code{--usage}, @code{-O}) command line option
-@cindex command-line options, how to find
-@cindex invocation description, how to find
-Look for the node that describes how to invoke the
-program. The name of the program is taken from the other non-option
-arguments on the command line. For example, @samp{info emacs -O} loads
-the @code{Emacs Invocation} node of the @code{emacs} manual.
-
-This option is provided to make it easier to find the
-most important usage information in a manual without navigating
-through menu hierarchies. The effect is similar to the @code{@kbd{M-x}
-goto-invocation} command (@pxref{goto-invocation}) from inside Info.
-
-@item --speech-friendly
-@itemx -b
-@cindex @code{--speech-friendly} (@code{-b}) command line option
-@cindex speech synthesizers
-On MS-DOS/MS-Windows only, this option causes Info to use standard
-file I/O functions for screen writes. (By default, Info uses direct
-writes to the video memory on these systems, for faster operation and
-colored display support.) This allows the speech synthesizers used by
-blind persons to catch the output and convert it to audible speech.
-
-@item --strict-node-location
-@cindex @code{--strict-node-location} command line option
-This option causes Info not to search ``nearby'' to locate nodes, and
-instead strictly use the information provided in the Info file. The
-practical use for this option is for debugging programs that write
-Info files, to check that they are outputting the correct locations.
-Due to bugs and malfeasances in the various Info writing programs over
-the years and versions, it is not advisable to ever use this option
-when just trying to read documentation.
-
-@item --subnodes
-@cindex @code{--subnodes}, command line option
-This option only has meaning when given in conjunction with
-@code{--output}. It means to recursively output the nodes appearing in
-the menus of each node being output. Menu items which resolve to
-external Info files are not output, and neither are menu items which are
-members of an index. Each node is only output once.
-
-@anchor{variable-assignment}
-@item -v @var{name}=@var{value}
-@itemx --variable=@var{name}=@var{value}
-@cindex @code{--variable} (@code{-v}) command line option
-@cindex variable assignment
-Set the @command{info} variable @var{name} to @var{value}.
-@xref{Variables}.
-
-@item --version
-@cindex @code{--version} command line option
-@cindex version information
-Prints the version information of Info and exits.
-
-@anchor{--vi-keys}
-@item --vi-keys
-@cindex @code{--vi-keys} command line option
-@cindex vi-like key bindings
-@cindex Less-like key bindings
-This option binds functions to keys differently, to emulate the key
-bindings of @code{vi} and Less. The bindings activated by this option
-are documented in @ref{@t{infokey} format}. (@xref{Custom Key Bindings}
-for a more general way of altering GNU Info's key bindings.)
-
-@item --where
-@itemx --location
-@itemx -w
-@cindex @code{--where} (@code{--location}, @code{-w}) command line option
-@cindex Info manual location
-@cindex Where is an Info manual?
-Show the filename that would be read and exit, instead of actually
-reading it and starting Info.
+@item @kbd{u} (@code{up-node})
+@itemx @kbd{C-@key{UP}} (an arrow key on DOS/Windows only)
+@kindex u
+@kindex C-UP
+@findex up-node
+Select the `Up' node.
@end table
-Finally, Info defines many default key bindings and variables.
-@xref{Custom Key Bindings} for information on how to customize these
-settings.
-
-@c FIXME: the feature with lowercasing the file name isn't documented
-
-
-@node Cursor Commands
-@chapter Moving the Cursor
-@cindex cursor, moving
-@cindex moving the cursor
-
-GNU Info has several commands which allow you to move the cursor about
-the screen.
-The notation used in this manual to describe keystrokes
-is the same as the notation used within the Emacs manual
-(@pxref{User Input,,, emacs, The GNU Emacs Manual}).
-@kbd{C-@var{x}} means press the @key{CTRL} key and the
-key @var{x}. @kbd{M-@var{x}} means press the @key{META} key and
-the key @var{x}. On many terminals the @key{META} key is known as
-the @key{ALT} key. @key{SPC} is the space bar. The other keys are
-usually called by the names printed on them.
+You can easily select a node that you have already viewed in this window
+by using the @samp{l} command---this name stands for ``last'', and
+actually moves backwards through the history of visited nodes for this
+window. This is handy when you followed a reference to another node,
+possibly to read about a related issue, and would like then to resume
+reading at the same place where you started the excursion.
-The following table lists the basic cursor movement commands in Info.
-Each entry consists of the key sequence you should type to execute the
-cursor movement, the @kbd{M-x} command name (displayed
-in parentheses), and a short description of what the command
-does.@footnote{@kbd{M-x} is also a command;
-it invokes @code{execute-extended-command}, letting you run a command
-by name. @xref{M-x, , Executing an extended command, emacs, The GNU
-Emacs Manual}, for more detailed information.}
-All of the cursor motion commands can take a @dfn{numeric} argument
-(see @ref{Miscellaneous Commands, @code{universal-argument}} to find
-out how to supply them). With a numeric argument, the motion commands
-are simply executed that many times; for example, a numeric argument
-of 4 given to @code{next-line} causes the cursor to move down 4 lines.
-With a negative numeric argument, the motion is reversed; an argument
-of @minus{}4 given to the @code{next-line} command would cause the
-cursor to move @emph{up} 4 lines.
+Each node where you press @samp{l} is discarded from the history. Thus,
+by the time you get to the first node you visited in a window, the
+entire history of that window is discarded.
@table @asis
-@item @kbd{C-n} (@code{next-line})
-@itemx @key{DOWN} (an arrow key)
-@kindex C-n
-@kindex DOWN (an arrow key)
-@findex next-line
-Move the cursor down to the next line.
-
-@item @kbd{C-p} (@code{prev-line})
-@itemx @key{UP} (an arrow key)
-@kindex C-p
-@kindex UP (an arrow key)
-@findex prev-line
-Move the cursor up to the previous line.
-
-@item @kbd{C-a} (@code{beginning-of-line})
-@itemx @key{Home} (on DOS/Windows only)
-@kindex C-a, in Info windows
-@kindex Home
-@findex beginning-of-line
-Move the cursor to the start of the current line.
-
-@item @kbd{C-e} (@code{end-of-line})
-@itemx @key{End} (on DOS/Windows only)
-@kindex C-e, in Info windows
-@kindex End
-@findex end-of-line
-Move the cursor to the end of the current line.
+@item @kbd{l} (@code{history-node})
+@itemx @kbd{C-@key{CENTER}} (on DOS/Windows only)
+@kindex l
+@kindex C-CENTER
+@findex history-node
+Pop the most recently selected node in this window from the node
+history.
+@end table
-@item @kbd{C-f} (@code{forward-char})
-@itemx @key{RIGHT} (an arrow key)
-@kindex C-f, in Info windows
-@kindex RIGHT (an arrow key)
-@findex forward-char
-Move the cursor forward a character.
+Two additional commands make it easy to select the most commonly
+selected nodes; they are @samp{t} and @samp{d}.
-@item @kbd{C-b} (@code{backward-char})
-@itemx @key{LEFT} (an arrow key)
-@kindex C-b, in Info windows
-@kindex LEFT (an arrow key)
-@findex backward-char
-Move the cursor backward a character.
+@table @asis
+@item @kbd{t} (@code{top-node})
+@kindex t
+@findex top-node
+Select the node @samp{Top} in the current Info file.
-@item @kbd{M-f} (@code{forward-word})
-@itemx @kbd{C-@key{RIGHT}} (on DOS/Windows only)
-@kindex M-f, in Info windows
-@kindex C-RIGHT
-@findex forward-word
-Move the cursor forward a word.
+@item @kbd{d} (@code{dir-node})
+@kindex d
+@findex dir-node
+Select the directory node (i.e., the node @samp{(dir)}).
+@end table
-@item @kbd{M-b} (@code{backward-word})
-@itemx @kbd{C-@key{LEFT}} (on DOS/Windows only)
-@kindex M-b, in Info windows
-@kindex C-LEFT
-@findex backward-word
-Move the cursor backward a word.
+Here are some other commands which immediately result in the selection
+of a different node in the current window:
-@item @kbd{M-<} (@code{beginning-of-node})
-@itemx @kbd{C-@key{Home}} (on DOS/Windows only)
-@itemx @kbd{b}
-@kindex b, in Info windows
-@kindex M-<
-@kindex C-Home
-@findex beginning-of-node
-Move the cursor to the start of the current node.
+@table @asis
+@item @kbd{<} (@code{first-node})
+@kindex <
+@findex first-node
+Selects the first node which appears in this file. This node is most
+often @samp{Top}, but it does not have to be. With a numeric argument
+@var{N}, select the @var{N}th node (the first node is node 1). An
+argument of zero is the same as the argument of 1.
-@item @kbd{M->} (@code{end-of-node})
-@itemx @kbd{C-@key{End}} (on DOS/Windows only)
-@itemx @kbd{e}
-@kindex M->
-@kindex e, in Info windows
-@kindex C-End
-@findex end-of-node
-Move the cursor to the end of the current node.
+@item @kbd{>} (@code{last-node})
+@kindex >
+@findex last-node
+Select the last node which appears in this file. With a numeric argument
+@var{N}, select the @var{N}th node (the first node is node 1). An
+argument of zero is the same as no argument, i.e., it selects the last
+node.
-@item @kbd{M-r} (@code{move-to-window-line})
-@kindex M-r
-@findex move-to-window-line
-Move the cursor to a specific line of the window. Without a numeric
-argument, @code{M-r} moves the cursor to the start of the line in the
-center of the window. With a numeric argument of @var{n}, @code{M-r}
-moves the cursor to the start of the @var{n}th line in the window.
+@item @kbd{]} (@code{global-next-node})
+@kindex ]
+@findex global-next-node
+Move forward through the node structure. If the node that you are
+currently viewing has a menu, select the first menu item. Otherwise,
+if this node has a @samp{Next} pointer, follow it. If there is no menu
+and no @samp{Next} pointer, then follow @samp{Up} pointers until there
+is a @samp{Next} pointer, and then follow it.
+
+@item @kbd{[} (@code{global-prev-node})
+@kindex [
+@findex global-prev-node
+Move backward through the node structure. If the node that you are
+currently viewing has a @samp{Prev} pointer, that node is selected.
+Otherwise, if the node has an @samp{Up} pointer, that node is selected,
+and if it has a menu, the last item in the menu is selected.
@end table
+You can get the same behavior as @code{global-next-node} and
+@code{global-prev-node} while simply scrolling through the file with
+@key{SPC} and @key{DEL} (@pxref{scroll-behavior}).
-@node Scrolling Commands
-@chapter Moving Text Within a Window
-@cindex scrolling
+@table @asis
+@anchor{goto-node}
+@item @kbd{g} (@code{goto-node})
+@kindex g
+@findex goto-node
+Read the name of a node and select it. If the desired node resides in
+some other file, you must type the node as it appears in that Info file,
+and include the name of the other file. For example,
-Sometimes you are looking at a screenful of text, and only part of the
-current paragraph you are reading is visible on the screen. The
-commands detailed in this section are used to shift which part of the
-current node is visible on the screen.
+@example
+@code{g(emacs)Buffers}
+@end example
-@table @asis
-@item @key{SPC} (@code{scroll-forward})
-@kindex SPC, in Info windows
-@itemx @key{NEXT}
-@kindex NEXT
-@findex scroll-forward
-Shift the text in this window up. That is, show more of the node which
-is currently below the bottom of the window. With a numeric argument,
-show that many more lines at the bottom of the window; a numeric
-argument of 4 would shift all of the text in the window up 4 lines
-(discarding the top 4 lines), and show you four new lines at the bottom
-of the window. Without a numeric argument, @key{SPC} takes the bottom
-two lines of the window and places them at the top of the window,
-redisplaying almost a completely new screenful of lines. If you are at
-the end of a node, @key{SPC} takes you to the ``next'' node, so that you can
-read an entire manual from start to finish by repeating @key{SPC}.
+@noindent
+finds the node @samp{Buffers} in the Info file @file{emacs}.
-@kindex PageDown
-The @key{NEXT} key is known as the @key{PageDown} key on some
-keyboards.
+While reading the node name, completion (@pxref{The Echo Area,
+completion}) is only done for the nodes which reside in one of the Info
+files that were loaded in the current Info session.
-@item @kbd{C-v} (@code{scroll-forward-page-only})
-@kindex C-v
-@findex scroll-forward-page-only
-Shift the text in this window up. This is identical to the @key{SPC}
-operation above, except that it never scrolls beyond the end of the
-current node.
+@anchor{goto-invocation}
+@item @kbd{O} (@code{goto-invocation})
+@kindex O
+@findex goto-invocation
+@cindex finding the Invocation node
+Read the name of a program and look for a node in the current Info file
+which describes the invocation and the command-line options for that
+program. The default program name is derived from the name of the
+current Info file. This command does the same as the
+@samp{--show-options} command-line option (@pxref{--show-options}), but
+it also allows to specify the program name; this is important for those
+manuals which describe several programs.
-@item @code{@kbd{M-x} scroll-forward-page-only-set-window}
-@findex scroll-forward-page-only-set-window
-Scroll forward, like with @kbd{C-v}, but if a numeric argument is
-specified, it becomes the default scroll size for subsequent
-@code{scroll-forward} and @code{scroll-backward} commands and their
-ilk.
+If you need to find the Invocation node of a program that is documented
+in another Info file, you need to visit that file before invoking
+@samp{O}. For example, if you are reading the Emacs manual and want to
+see the command-line options of the @code{makeinfo} program, type @kbd{g
+(texinfo) @key{RET}} and then @kbd{I makeinfo @key{RET}}. If you don't
+know what Info file documents the command, or if invoking @samp{O}
+doesn't display the right node, go to the @samp{(dir)} node (using the
+@samp{d} command) and invoke @samp{O} from there.
-@item @key{DEL} (@code{scroll-backward})
-@kindex DEL, in Info windows
-@item @key{PREVIOUS}
-@kindex PREVIOUS
-@findex scroll-backward
-Shift the text in this window down. The inverse of
-@code{scroll-forward}.
-If you are at the start of a node, @key{DEL} takes you to the
-``previous'' node, so that you can read an entire manual from finish to
-start by repeating @key{DEL}. The default scroll size can be changed by
-invoking the (@code{scroll-backward-page-only-set-window}) command with
-a numeric argument.
+@item @kbd{G} (@code{menu-sequence})
+@kindex G
+@findex menu-sequence
+@cindex menu, following, from inside Info
+Read a sequence of menu entries and follow it. Info prompts for a
+sequence of menu items separated by commas. (Since commas are not
+allowed in a node name, they are a natural choice for a delimiter in a
+list of menu items.) Info then looks up the first item in the menu of
+the node @samp{(dir)} (if the @samp{(dir)} node cannot be found, Info
+uses @samp{Top}). If such an entry is found, Info goes to the node it
+points to and looks up the second item in the menu of that node, etc.
+In other words, you can specify a complete path which descends through
+the menu hierarchy of a particular Info file starting at the
+@samp{(dir)} node. This has the same effect as if you typed the menu
+item sequence on Info's command line, see @ref{command-line menu items,,
+Info command-line arguments processing}. For example,
-@kindex BS (backspace)
-If your keyboard lacks the @key{DEL} key, look for a key called
-@key{BS}, or @samp{Backspace}, sometimes designated with an arrow which
-points to the left, which should perform the same function.
+@example
+ @kbd{G Texinfo,Overview,Reporting Bugs @key{RET}}
+@end example
-@kindex PageUp
-The @key{PREVIOUS} key is the @key{PageUp} key on many keyboards. Emacs
-refers to it by the name @key{PRIOR}.
+@noindent
+displays the node @samp{Reporting Bugs} in the Texinfo manual. (You
+don't actually need to type the menu items in their full length, or in
+their exact letter-case. However, if you do type the menu items
+exactly, Info will find it faster.)
-@item @kbd{M-v} (@code{scroll-backward-page-only})
-@kindex M-v
-@findex scroll-backward-page-only
-Shift the text in this window down. The inverse of
-@code{scroll-forward-page-only}. Does not scroll beyond the start of
-the current node. The default scroll size can be changed by invoking
-the @code{scroll-backward-page-only-set-window} command with a numeric
-argument.
+If any of the menu items you type are not found, Info stops at the last
+entry it did find and reports an error.
-@item @code{@kbd{M-x} scroll-backward-page-only-set-window}
-@findex scroll-backward-page-only-set-window
-Scroll backward, like with @kbd{M-v}, but if a numeric argument is
-specified, it becomes the default scroll size for subsequent
-@code{scroll-forward} and @code{scroll-backward} commands.
+@item @kbd{C-x C-f} (@code{view-file})
+@kindex C-x C-f
+@findex view-file
+Read the name of a file and selects the entire file. The command
+@example
+@code{C-x C-f @var{filename}}
+@end example
+is equivalent to typing
+@example
+@code{g(@var{filename})*}
+@end example
-@item @code{@kbd{M-x} down-line}
-@findex down-line
-Scroll forward by one line. With a numeric argument, scroll forward
-that many lines.
+@item @kbd{C-x C-b} (@code{list-visited-nodes})
+@kindex C-x C-b
+@findex list-visited-nodes
+Make a window containing a menu of all of the currently visited nodes.
+This window becomes the selected window, and you may use the standard
+Info commands within it.
-@item @code{@kbd{M-x} up-line}
-@findex up-line
-Scroll backward one line. With a numeric argument, scroll backward that
-many lines.
+@item @kbd{C-x @kbd{b}} (@code{select-visited-node})
+@kindex C-x b
+@findex select-visited-node
+Select a node which has been previously visited in a visible window.
+This is similar to @samp{C-x C-b} followed by @samp{m}, but no window is
+created.
-@item @code{@kbd{M-x} scroll-half-screen-down}
-@findex scroll-half-screen-down
-Scroll forward by half of the screen size. With a numeric argument,
-scroll that many lines. If an argument is specified, it becomes the new
-default number of lines to scroll for subsequent
-@code{scroll-half-screen-down} and @code{scroll-half-screen-up} commands.
+@item @code{@kbd{M-x} man}
+@findex man
+@cindex man pages, displaying
+Read the name of a man page to load and display. This uses the @command{man}
+command on your system to retrieve the contents of the requested man page.
+See also @ref{--raw-escapes}.
-@item @code{@kbd{M-x} scroll-half-screen-up}
-@findex scroll-half-screen-up
-Scroll back by half of the screen size. With a numeric argument,
-scroll that many lines. If an argument is specified, it becomes the new
-default number of lines to scroll for subsequent
-@code{scroll-half-screen-down} and @code{scroll-half-screen-up}
-commands.
@end table
-@cindex scrolling through node structure
-The @code{scroll-forward} and @code{scroll-backward} commands can also
-move forward and backward through the node structure of the file. If
-you press @key{SPC} while viewing the end of a node, or @key{DEL} while
-viewing the beginning of a node, what happens is controlled by the
-variable @code{scroll-behavior} (@pxref{scroll-behavior}).
-The @code{scroll-forward-page-only} and @code{scroll-backward-page-only}
-commands never scroll beyond the current node.
+@node Searching Commands
+@chapter Searching an Info File
+@cindex searching
+
+GNU Info allows you to search for a sequence of characters throughout an
+entire Info file. Here are the commands to do this:
@table @asis
-@item @kbd{C-l} (@code{redraw-display})
-@kindex C-l
-@findex redraw-display
-Redraw the display from scratch, or shift the line containing the cursor
-to a specified location. With no numeric argument, @samp{C-l} clears
-the screen, and then redraws its entire contents. Given a numeric
-argument of @var{n}, the line containing the cursor is shifted so that
-it is on the @var{n}th line of the window.
+@item @kbd{s} (@code{search})
+@itemx @kbd{/}
+@kindex s
+@kindex /
+@findex search
+@cindex regular expression search
+Read a string in the echo area and search for it, either as a regular
+expression (by default) or a literal string. If the string includes
+upper-case characters, the Info file is searched case-sensitively;
+otherwise Info ignores the letter case. With a numeric argument of
+@var{N}, search for @var{N}th occurrence of the string. Negative
+arguments search backwards.
-@item @kbd{C-x @kbd{w}} (@code{toggle-wrap})
-@kindex C-w
-@findex toggle-wrap
-Toggles the state of line wrapping in the current window. Normally,
-lines which are longer than the screen width @dfn{wrap}, i.e., they are
-continued on the next line. Lines which wrap have a @samp{\} appearing
-in the rightmost column of the screen. You can cause such lines to be
-terminated at the rightmost column by changing the state of line
-wrapping in the window with @kbd{C-x w}. When a line which needs more
-space than one screen width to display is displayed, a @samp{$} appears
-in the rightmost column of the screen, and the remainder of the line is
-invisible. When long lines are truncated, the mode line displays the
-@samp{$} character near its left edge.
-@end table
+@item @kbd{?} (@code{search-backward})
+@kindex ?
+@findex search-backward
+Read a string in the echo area and search backward through the Info file
+for that string. If the string includes upper-case characters, the Info
+file is searched case-sensitively; otherwise Info ignores the letter
+case. With a numeric argument of @var{N}, search for @var{N}th
+occurrence of the string. Negative arguments search forward.
+@anchor{repeated-search}
+@item @kbd{C-x @kbd{n}} (@code{search-next})
+@itemx @kbd{@}}
+@kindex C-x n
+@kindex @}
+@findex search-next
+@cindex repeated search
+Search forwards for the string used for the last search command.
+Case sensitivity and use of regular expressions are kept the same. With
+a numeric argument of @var{n}, search for @var{n}th next occurrence.
-@node Node Commands
-@chapter Selecting a Node
-@cindex nodes, selection of
+By default, the search starts at the position immediately following
+the cursor. However, if the variable @code{search-skip-screen}
+(@pxref{Variables,, @code{search-skip-screen}}) is set, it starts at
+the beginning of the next page, thereby skipping all visibly displayed
+lines.
-This section details the numerous Info commands which select a new node
-to view in the current window.
+@item @kbd{C-x @kbd{N}} (@code{search-previous})
+@itemx @kbd{@{}
+@kindex C-x N
+@kindex @{
+@findex search-previous
+Just like @code{search-next}, but in reverse. You can use
+@code{search-next} and @code{search-previous} together to move forward
+and backward through matches. @code{search-previous} usually goes to
+the place in the file that was displayed before an immediately preceding
+@code{search-next}, and vice versa.@footnote{This sometimes doesn't
+happen when @code{search-skip-screen} is @code{On}, and the search goes
+across nodes.}
-The most basic node commands are @samp{n}, @samp{p}, @samp{u}, and
-@samp{l}.
-When you are viewing a node, the top line of the node contains some Info
-@dfn{pointers} which describe where the next, previous, and up nodes
-are. Info uses this line to move about the node structure of the file
-when you use the following commands:
+@item @kbd{R} (@code{toggle-regexp})
+@kindex R
+@findex toggle-regexp
+Toggle between using regular expressions and literal strings for
+searching. Info uses so-called `extended' regular expression syntax
+(@pxref{Regular Expressions,,, grep, GNU Grep}).
-@table @asis
-@item @kbd{n} (@code{next-node})
-@itemx @kbd{C-@key{NEXT}} (on DOS/Windows only)
-@kindex n
-@kindex C-NEXT
-@findex next-node
-Select the `Next' node.
+@item @kbd{S} (@code{search-case-sensitively})
+@kindex S
+@findex search-case-sensitively
+@cindex search, case-sensitive
+@cindex case-sensitive search
+Read a string in the echo area and search for it case-sensitively, even
+if the string includes only lower-case letters. With a numeric argument
+of @var{N}, search for @var{N}th occurrence of the string. Negative
+arguments search backwards.
-@kindex C-PgDn
-The @key{NEXT} key is known as the @key{PgDn} key on some
-keyboards.
+@item @kbd{C-s} (@code{isearch-forward})
+@kindex C-s
+@findex isearch-forward
+@cindex incremental search
+Interactively search forward through the Info file for a string as you
+type it. If the string includes upper-case characters, the search is
+case-sensitive; otherwise Info ignores the letter case.
-@item @kbd{p} (@code{prev-node})
-@itemx @kbd{C-@key{PREVIOUS}} (on DOS/Windows only)
-@kindex p
-@kindex C-PREVIOUS
-@findex prev-node
-Select the `Prev' node.
+@item @kbd{C-r} (@code{isearch-backward})
+@kindex C-r
+@findex isearch-backward
+Interactively search backward through the Info file for a string as
+you type it. If the string includes upper-case characters, the search
+is case-sensitive; otherwise Info ignores the letter case.
-@kindex C-PgUp
-The @key{PREVIOUS} key is known as the @key{PgUp} key on some
-keyboards.
+@item @kbd{M-/} (@code{tree-search})
+@findex tree-search
+Recursively search this node and any subnodes listed in menus for a
+string.
-@item @kbd{u} (@code{up-node})
-@itemx @kbd{C-@key{UP}} (an arrow key on DOS/Windows only)
-@kindex u
-@kindex C-UP
-@findex up-node
-Select the `Up' node.
+@item @kbd{M-@}} (@code{tree-search-next})
+@itemx @kbd{M-@{} (@code{tree-search-previous})
+@findex tree-search-next
+@findex tree-search-previous
+Go forwards and backwards through the matches for an active tree search.
@end table
-You can easily select a node that you have already viewed in this window
-by using the @samp{l} command---this name stands for ``last'', and
-actually moves backwards through the history of visited nodes for this
-window. This is handy when you followed a reference to another node,
-possibly to read about a related issue, and would like then to resume
-reading at the same place where you started the excursion.
+The most basic searching command is @samp{s} or @samp{/}
+(@code{search}). The @samp{s} command prompts you for a string in the
+echo area, and then searches the remainder of the Info file for an
+occurrence of that string. If the string is found, the node containing
+it is selected, and the cursor is left positioned at the start of the
+found string. Subsequent @samp{s} commands show you the default search
+string; pressing @key{RET} instead of typing a new string will use the
+default search string.
-Each node where you press @samp{l} is discarded from the history. Thus,
-by the time you get to the first node you visited in a window, the
-entire history of that window is discarded.
+@dfn{Incremental searching} is similar to basic searching, but the
+string is looked up while you are typing it, instead of waiting until
+the entire search string has been specified.
-@table @asis
-@item @kbd{l} (@code{history-node})
-@itemx @kbd{C-@key{CENTER}} (on DOS/Windows only)
-@kindex l
-@kindex C-CENTER
-@findex history-node
-Pop the most recently selected node in this window from the node
-history.
-@end table
+The tree search can be used from the @code{dir} node to search through
+all Info files installed on the system. It can also be used to search
+through a particular chapter of a manual when you are not interested in
+matches in other chapters.
-Two additional commands make it easy to select the most commonly
-selected nodes; they are @samp{t} and @samp{d}.
+@vindex highlight-searches
+@findex clear-search
+If the @code{highlight-searches} variable is set, matches from search
+commands will be highlighted. @xref{Variables,, @code{highlight-searches}}.
+Use the @code{@kbd{M-x} clear-search} command to clear any search highlights.
-@table @asis
-@item @kbd{t} (@code{top-node})
-@kindex t
-@findex top-node
-Select the node @samp{Top} in the current Info file.
+@cindex search, and case-sensitivity
+@cindex case-sensitivity, and search
+Both incremental and non-incremental search by default ignore the case
+of letters when comparing the Info file text with the search string.
+However, an uppercase letter in the search string makes the search
+case-sensitive. You can force a case-sensitive non-incremental search,
+even for a string that includes only lower-case letters, by using the
+@samp{S} command (@code{search-case-sensitively}). The @samp{n} and
+@samp{N} commands operate case-sensitively if the last search command
+was @samp{S}.
-@item @kbd{d} (@code{dir-node})
-@kindex d
-@findex dir-node
-Select the directory node (i.e., the node @samp{(dir)}).
-@end table
+Normally, the search pattern should not be shorter than some
+predefined limit. By default, this limit is set to 1 character.
+@xref{min-search-length} for more information on this.
-Here are some other commands which immediately result in the selection
-of a different node in the current window:
+
+@node Index Commands
+@chapter Index Commands
+@cindex index
+@cindex indices
+@cindex indexes
+
+GNU Info has commands to search through the indices of an Info file,
+which helps you find areas within an Info file which discuss a
+particular topic.
@table @asis
-@item @kbd{<} (@code{first-node})
-@kindex <
-@findex first-node
-Selects the first node which appears in this file. This node is most
-often @samp{Top}, but it does not have to be. With a numeric argument
-@var{N}, select the @var{N}th node (the first node is node 1). An
-argument of zero is the same as the argument of 1.
+@item @kbd{i} (@code{index-search})
+@kindex i
+@findex index-search
+@cindex index, searching
+@cindex searching, in the indices
+Look up a string in the indices for this Info file, and select a node
+to which the found index entry points.
-@item @kbd{>} (@code{last-node})
-@kindex >
-@findex last-node
-Select the last node which appears in this file. With a numeric argument
-@var{N}, select the @var{N}th node (the first node is node 1). An
-argument of zero is the same as no argument, i.e., it selects the last
-node.
+@item @kbd{I} (@code{virtual-index})
+@kindex I
+@findex virtual-index
+@cindex index, virtual
+Look up a string in the indices for this Info file, and show all the
+matches in a new virtual node, synthesized on the fly.
-@item @kbd{]} (@code{global-next-node})
-@kindex ]
-@findex global-next-node
-Move forward through the node structure. If the node that you are
-currently viewing has a menu, select the first menu item. Otherwise,
-if this node has a @samp{Next} pointer, follow it. If there is no menu
-and no @samp{Next} pointer, then follow @samp{Up} pointers until there
-is a @samp{Next} pointer, and then follow it.
+@item @kbd{,} (@code{next-index-match})
+@kindex ,
+@findex next-index-match
+Move to the node containing the next matching index item from the last
+@samp{i} command.
-@item @kbd{[} (@code{global-prev-node})
-@kindex [
-@findex global-prev-node
-Move backward through the node structure. If the node that you are
-currently viewing has a @samp{Prev} pointer, that node is selected.
-Otherwise, if the node has an @samp{Up} pointer, that node is selected,
-and if it has a menu, the last item in the menu is selected.
+@item @code{@kbd{M-x} index-apropos}
+@findex index-apropos
+Grovel the indices of all the known Info files on your system for a
+string, and build a menu of the possible matches.
@end table
-You can get the same behavior as @code{global-next-node} and
-@code{global-prev-node} while simply scrolling through the file with
-@key{SPC} and @key{DEL} (@pxref{scroll-behavior}).
+The most efficient means of finding something quickly in a manual is
+the @samp{i} command (@code{index-search}). This command prompts for
+a string, and then looks for that string in all the indices of the
+current Info manual. If it finds a matching index entry, it displays
+the node to which that entry refers and prints the full text of the
+entry in the echo area. You can press @samp{,}
+(@code{next-index-match}) to find more matches. A good Info manual
+has all of its important concepts indexed, so the @samp{i} command
+lets you use a manual as a reference.
+
+If you don't know what manual documents something, try the @kbd{M-x
+index-apropos} command. It prompts for a string and then looks up
+that string in all the indices of all the Info documents installed on
+your system. It can also be invoked from the command line; see
+@ref{--apropos}.
-@table @asis
-@anchor{goto-node}
-@item @kbd{g} (@code{goto-node})
-@kindex g
-@findex goto-node
-Read the name of a node and select it. If the desired node resides in
-some other file, you must type the node as it appears in that Info file,
-and include the name of the other file. For example,
-@example
-@code{g(emacs)Buffers}
-@end example
+@node Xref Commands
+@chapter Selecting Cross-references
-@noindent
-finds the node @samp{Buffers} in the Info file @file{emacs}.
+We have already discussed the @samp{Next}, @samp{Prev}, and @samp{Up}
+pointers which appear at the top of a node. In addition to these
+pointers, a node may contain other pointers which refer you to a
+different node, perhaps in another Info file. Such pointers are called
+@dfn{cross-references}, or @dfn{xrefs} for short.
-While reading the node name, completion (@pxref{The Echo Area,
-completion}) is only done for the nodes which reside in one of the Info
-files that were loaded in the current Info session.
+@menu
+* Parts of an Xref:: What a cross-reference is made of.
+* Selecting Xrefs:: Commands for selecting menu or note items.
+@end menu
-@anchor{goto-invocation}
-@item @kbd{O} (@code{goto-invocation})
-@kindex O
-@findex goto-invocation
-@cindex finding the Invocation node
-Read the name of a program and look for a node in the current Info file
-which describes the invocation and the command-line options for that
-program. The default program name is derived from the name of the
-current Info file. This command does the same as the
-@samp{--show-options} command-line option (@pxref{--show-options}), but
-it also allows to specify the program name; this is important for those
-manuals which describe several programs.
+@node Parts of an Xref
+@section Parts of an Xref
-If you need to find the Invocation node of a program that is documented
-in another Info file, you need to visit that file before invoking
-@samp{O}. For example, if you are reading the Emacs manual and want to
-see the command-line options of the @code{makeinfo} program, type @kbd{g
-(texinfo) @key{RET}} and then @kbd{I makeinfo @key{RET}}. If you don't
-know what Info file documents the command, or if invoking @samp{O}
-doesn't display the right node, go to the @samp{(dir)} node (using the
-@samp{d} command) and invoke @samp{O} from there.
+Cross-references have two major parts: the first part is called the
+@dfn{label}; it is the name that you can use to refer to the cross
+reference, and the second is the @dfn{target}; it is the full name of
+the node that the cross-reference points to.
-@item @kbd{G} (@code{menu-sequence})
-@kindex G
-@findex menu-sequence
-@cindex menu, following, from inside Info
-Read a sequence of menu entries and follow it. Info prompts for a
-sequence of menu items separated by commas. (Since commas are not
-allowed in a node name, they are a natural choice for a delimiter in a
-list of menu items.) Info then looks up the first item in the menu of
-the node @samp{(dir)} (if the @samp{(dir)} node cannot be found, Info
-uses @samp{Top}). If such an entry is found, Info goes to the node it
-points to and looks up the second item in the menu of that node, etc.
-In other words, you can specify a complete path which descends through
-the menu hierarchy of a particular Info file starting at the
-@samp{(dir)} node. This has the same effect as if you typed the menu
-item sequence on Info's command line, see @ref{command-line menu items,,
-Info command-line arguments processing}. For example,
+The target is separated from the label by a colon @samp{:}; first the
+label appears, and then the target. For example, in the sample menu
+cross-reference below, the single colon separates the label from the
+target.
@example
- @kbd{G Texinfo,Overview,Reporting Bugs @key{RET}}
+* Foo Label: Foo Target. More information about Foo.
@end example
-@noindent
-displays the node @samp{Reporting Bugs} in the Texinfo manual. (You
-don't actually need to type the menu items in their full length, or in
-their exact letter-case. However, if you do type the menu items
-exactly, Info will find it faster.)
+Note the @samp{.} which ends the name of the target. The @samp{.} is
+not part of the target; it serves only to let Info know where the target
+name ends.
-If any of the menu items you type are not found, Info stops at the last
-entry it did find and reports an error.
+A shorthand way of specifying references allows two adjacent colons to
+stand for a target name which is the same as the label name:
-@item @kbd{C-x C-f} (@code{view-file})
-@kindex C-x C-f
-@findex view-file
-Read the name of a file and selects the entire file. The command
-@example
-@code{C-x C-f @var{filename}}
-@end example
-is equivalent to typing
@example
-@code{g(@var{filename})*}
+* Foo Commands:: Commands pertaining to Foo.
@end example
-@item @kbd{C-x C-b} (@code{list-visited-nodes})
-@kindex C-x C-b
-@findex list-visited-nodes
-Make a window containing a menu of all of the currently visited nodes.
-This window becomes the selected window, and you may use the standard
-Info commands within it.
-
-@item @kbd{C-x @kbd{b}} (@code{select-visited-node})
-@kindex C-x b
-@findex select-visited-node
-Select a node which has been previously visited in a visible window.
-This is similar to @samp{C-x C-b} followed by @samp{m}, but no window is
-created.
+In the above example, the name of the target is the same as the name of
+the label, in this case @code{Foo Commands}.
-@item @code{@kbd{M-x} man}
-@findex man
-@cindex man pages, displaying
-Read the name of a man page to load and display. This uses the @command{man}
-command on your system to retrieve the contents of the requested man page.
-See also @ref{--raw-escapes}.
+You will normally see two types of cross-reference while viewing nodes:
+@dfn{menu} references, and @dfn{note} references. Menu references
+appear within a node's menu; they begin with a @samp{*} at the beginning
+of a line, and continue with a label, a target, and a comment which
+describes what the contents of the node pointed to contains.
-@end table
+Note references appear within the body of the node text; they begin with
+@code{*Note}, and continue with a label and a target.
+Like @samp{Next}, @samp{Prev}, and @samp{Up} pointers, cross-references
+can point to any valid node. They are used to refer you to a place
+where more detailed information can be found on a particular subject.
+Here is a cross-reference which points to a node within the Texinfo
+documentation: @xref{xref, , Writing an Xref, texinfo, the Texinfo
+Manual}, for more information on creating your own texinfo cross
+references.
-@node Searching Commands
-@chapter Searching an Info File
-@cindex searching
+@node Selecting Xrefs
+@section Selecting Xrefs
-GNU Info allows you to search for a sequence of characters throughout an
-entire Info file. Here are the commands to do this:
+The following table lists the Info commands which operate on menu items.
@table @asis
-@item @kbd{s} (@code{search})
-@itemx @kbd{/}
-@kindex s
-@kindex /
-@findex search
-@cindex regular expression search
-Read a string in the echo area and search for it, either as a regular
-expression (by default) or a literal string. If the string includes
-upper-case characters, the Info file is searched case-sensitively;
-otherwise Info ignores the letter case. With a numeric argument of
-@var{N}, search for @var{N}th occurrence of the string. Negative
-arguments search backwards.
+@item @kbd{1} (@code{menu-digit})
+@itemx @kbd{2} @dots{} @kbd{9}
+@itemx @kbd{M-1}, vi-like operation
+@itemx @kbd{M-2} @dots{} @kbd{M-9}, vi-like operation
+@cindex 1 @dots{} 9, in Info windows
+@cindex M-1 @dots{} M-9, vi-like operation
+@kindex 1 @dots{} 9, in Info windows
+@kindex M-1 @dots{} M-9, vi-like operation
+@findex menu-digit
+Within an Info window, pressing a single digit, (such as @samp{1}),
+selects that menu item, and places its node in the current window.
+For convenience, there is one exception; pressing @samp{0} selects the
+@emph{last} item in the node's menu. When @samp{--vi-keys} is in
+effect, digits set the numeric argument, so these commands are remapped
+to their @samp{M-} varieties. For example, to select the last menu
+item, press @kbd{M-0}.
-@item @kbd{?} (@code{search-backward})
-@kindex ?
-@findex search-backward
-Read a string in the echo area and search backward through the Info file
-for that string. If the string includes upper-case characters, the Info
-file is searched case-sensitively; otherwise Info ignores the letter
-case. With a numeric argument of @var{N}, search for @var{N}th
-occurrence of the string. Negative arguments search forward.
+@item @kbd{0} (@code{last-menu-item})
+@itemx @kbd{M-0}, vi-like operation
+@kindex 0, in Info windows
+@kindex M-0, vi-like operation
+@findex last-menu-item
+Select the last item in the current node's menu.
-@anchor{repeated-search}
-@item @kbd{C-x @kbd{n}} (@code{search-next})
-@itemx @kbd{@}}
-@kindex C-x n
-@kindex @}
-@findex search-next
-@cindex repeated search
-Search forwards for the string used for the last search command.
-Case sensitivity and use of regular expressions are kept the same. With
-a numeric argument of @var{n}, search for @var{n}th next occurrence.
+@item @kbd{m} (@code{menu-item})
+@kindex m
+@findex menu-item
+Reads the name of a menu item in the echo area and selects its node.
+Completion is available while reading the menu label. @xref{The Echo
+Area, completion}.
-By default, the search starts at the position immediately following
-the cursor. However, if the variable @code{search-skip-screen}
-(@pxref{Variables,, @code{search-skip-screen}}) is set, it starts at
-the beginning of the next page, thereby skipping all visibly displayed
-lines.
+@item @code{@kbd{M-x} find-menu}
+@findex find-menu
+Move the cursor to the start of this node's menu.
+@end table
-@item @kbd{C-x @kbd{N}} (@code{search-previous})
-@itemx @kbd{@{}
-@kindex C-x N
-@kindex @{
-@findex search-previous
-Just like @code{search-next}, but in reverse. You can use
-@code{search-next} and @code{search-previous} together to move forward
-and backward through matches. @code{search-previous} usually goes to
-the place in the file that was displayed before an immediately preceding
-@code{search-next}, and vice versa.@footnote{This sometimes doesn't
-happen when @code{search-skip-screen} is @code{On}, and the search goes
-across nodes.}
+This table lists the Info commands which operate on cross-references.
+
+@table @asis
+@item @kbd{f} (@code{xref-item})
+@itemx @kbd{r}
+@kindex f
+@kindex r
+@findex xref-item
+Reads the name of a note cross-reference in the echo area and selects
+its node. Completion is available while reading the cross-reference
+label. @xref{The Echo Area, completion}.
+@end table
+
+Finally, the next few commands operate on menu or note references alike:
+
+@table @asis
+@item @key{TAB} (@code{move-to-next-xref})
+@kindex TAB, in Info windows
+@findex move-to-next-xref
+Move the cursor to the start of the next nearest menu item or note
+reference in this node. You can then use @key{RET}
+(@code{select-reference-this-line}) to select the menu or note reference.
+
+@item @kbd{M-@key{TAB}} (@code{move-to-prev-xref})
+@itemx @kbd{BackTab}
+@itemx @kbd{Shift-@key{TAB}} (on DOS/Windows only)
+@kindex M-TAB, in Info windows
+@findex move-to-prev-xref
+Move the cursor the start of the nearest previous menu item or note
+reference in this node.
+@kindex Shift-TAB, in Info windows
+@kindex BackTab, in Info windows
+The @kbd{BackTab} key can be produced on some terminals with
+@kbd{Shift-@key{TAB}}.
-@item @kbd{R} (@code{toggle-regexp})
-@kindex R
-@findex toggle-regexp
-Toggle between using regular expressions and literal strings for
-searching. Info uses so-called `extended' regular expression syntax
-(@pxref{Regular Expressions,,, grep, GNU Grep}).
+@item @key{RET} (@code{select-reference-this-line})
+@kindex RET, in Info windows
+@findex select-reference-this-line
+Select the menu item or note reference appearing on this line.
+@end table
-@item @kbd{S} (@code{search-case-sensitively})
-@kindex S
-@findex search-case-sensitively
-@cindex search, case-sensitive
-@cindex case-sensitive search
-Read a string in the echo area and search for it case-sensitively, even
-if the string includes only lower-case letters. With a numeric argument
-of @var{N}, search for @var{N}th occurrence of the string. Negative
-arguments search backwards.
-@item @kbd{C-s} (@code{isearch-forward})
-@kindex C-s
-@findex isearch-forward
-@cindex incremental search
-Interactively search forward through the Info file for a string as you
-type it. If the string includes upper-case characters, the search is
-case-sensitive; otherwise Info ignores the letter case.
+@node Window Commands
+@chapter Manipulating Multiple Windows
+@cindex windows, manipulating
-@item @kbd{C-r} (@code{isearch-backward})
-@kindex C-r
-@findex isearch-backward
-Interactively search backward through the Info file for a string as
-you type it. If the string includes upper-case characters, the search
-is case-sensitive; otherwise Info ignores the letter case.
+A @dfn{window} is a place to show the text of a node. Windows have a
+view area where the text of the node is displayed, and an associated
+@dfn{mode line}, which briefly describes the node being viewed.
-@item @kbd{M-/} (@code{tree-search})
-@findex tree-search
-Recursively search this node and any subnodes listed in menus for a
-string.
+GNU Info supports multiple windows appearing in a single screen; each
+window is separated from the next by its mode line. At any time, there
+is only one @dfn{active} window, that is, the window in which the cursor
+appears. There are commands available for creating windows, changing
+the size of windows, selecting which window is active, and for deleting
+windows.
-@item @kbd{M-@}} (@code{tree-search-next})
-@itemx @kbd{M-@{} (@code{tree-search-previous})
-@findex tree-search-next
-@findex tree-search-previous
-Go forwards and backwards through the matches for an active tree search.
-@end table
+@menu
+* The Mode Line:: What appears in the mode line?
+* Basic Windows:: Manipulating windows in Info.
+* The Echo Area:: Used for displaying errors and reading input.
+@end menu
-The most basic searching command is @samp{s} or @samp{/}
-(@code{search}). The @samp{s} command prompts you for a string in the
-echo area, and then searches the remainder of the Info file for an
-occurrence of that string. If the string is found, the node containing
-it is selected, and the cursor is left positioned at the start of the
-found string. Subsequent @samp{s} commands show you the default search
-string; pressing @key{RET} instead of typing a new string will use the
-default search string.
+@node The Mode Line
+@section The Mode Line
-@dfn{Incremental searching} is similar to basic searching, but the
-string is looked up while you are typing it, instead of waiting until
-the entire search string has been specified.
+A @dfn{mode line} is a line of inverse video which appears at the bottom
+of an Info window. It describes the contents of the window just above
+it; this information includes the name of the file and node appearing in
+that window, the number of screen lines it takes to display the node,
+and the percentage of text that is above the top of the window.
-The tree search can be used from the @code{dir} node to search through
-all Info files installed on the system. It can also be used to search
-through a particular chapter of a manual when you are not interested in
-matches in other chapters.
+Here is a sample mode line for a window containing a file
+named @file{dir}, showing the node @samp{Top}.
-@vindex highlight-searches
-@findex clear-search
-If the @code{highlight-searches} variable is set, matches from search
-commands will be highlighted. @xref{Variables,, @code{highlight-searches}}.
-Use the @code{@kbd{M-x} clear-search} command to clear any search highlights.
+@example
+@group
+-----Info: (dir)Top, 40 lines --Top-------------------------------------
+ ^^ ^ ^^^ ^^
+ (file)Node #lines where
+@end group
+@end example
-@cindex search, and case-sensitivity
-@cindex case-sensitivity, and search
-Both incremental and non-incremental search by default ignore the case
-of letters when comparing the Info file text with the search string.
-However, an uppercase letter in the search string makes the search
-case-sensitive. You can force a case-sensitive non-incremental search,
-even for a string that includes only lower-case letters, by using the
-@samp{S} command (@code{search-case-sensitively}). The @samp{n} and
-@samp{N} commands operate case-sensitively if the last search command
-was @samp{S}.
+Truncation of long lines (as opposed to wrapping them to the next
+display line, @pxref{Scrolling Commands, toggle-wrap}) is indicated by a
+@samp{$} at the left edge of the mode line:
-Normally, the search pattern should not be shorter than some
-predefined limit. By default, this limit is set to 1 character.
-@xref{min-search-length} for more information on this.
+@example
+--$--Info: (texinfo)Top, 480 lines --Top--------------------------------
+@end example
+
+When Info makes a node internally, such that there is no corresponding
+info file on disk, the name of the node is surrounded by asterisks
+(@samp{*}). The name itself tells you what the contents of the window
+are; the sample mode line below shows an internally constructed node
+showing possible completions:
+@example
+-----Info: *Completions*, 7 lines --All---------------------------------
+@end example
-@node Index Commands
-@chapter Index Commands
-@cindex index
-@cindex indices
-@cindex indexes
+@node Basic Windows
+@section Window Commands
-GNU Info has commands to search through the indices of an Info file,
-which helps you find areas within an Info file which discuss a
-particular topic.
+It can be convenient to view more than one node at a time. To allow
+this, Info can display more than one @dfn{window}. Each window has its
+own mode line (@pxref{The Mode Line}) and history of nodes viewed in that
+window (@pxref{Node Commands, , @code{history-node}}).
@table @asis
-@item @kbd{i} (@code{index-search})
-@kindex i
-@findex index-search
-@cindex index, searching
-@cindex searching, in the indices
-Look up a string in the indices for this Info file, and select a node
-to which the found index entry points.
-
-@item @kbd{I} (@code{virtual-index})
-@kindex I
-@findex virtual-index
-@cindex index, virtual
-Look up a string in the indices for this Info file, and show all the
-matches in a new virtual node, synthesized on the fly.
+@item @kbd{C-x @kbd{o}} (@code{next-window})
+@cindex windows, selecting
+@kindex C-x o
+@findex next-window
+Select the next window on the screen. Note that the echo area can only be
+selected if it is already in use, and you have left it temporarily.
+Normally, @samp{C-x o} simply moves the cursor into the next window on
+the screen, or if you are already within the last window, into the first
+window on the screen. Given a numeric argument, @samp{C-x o} moves over
+that many windows. A negative argument causes @samp{C-x o} to select
+the previous window on the screen.
-@item @kbd{,} (@code{next-index-match})
-@kindex ,
-@findex next-index-match
-Move to the node containing the next matching index item from the last
-@samp{i} command.
+@item @code{@kbd{M-x} prev-window}
+@findex prev-window
+Select the previous window on the screen. This is identical to
+@samp{C-x o} with a negative argument.
-@item @code{@kbd{M-x} index-apropos}
-@findex index-apropos
-Grovel the indices of all the known Info files on your system for a
-string, and build a menu of the possible matches.
-@end table
+@item @kbd{C-x @kbd{2}} (@code{split-window})
+@cindex windows, creating
+@kindex C-x 2
+@findex split-window
+Split the current window into two windows, both showing the same node.
+Each window is one half the size of the original window, and the
+cursor remains in the original window. The variable
+@code{automatic-tiling} can cause all of the windows on the screen to
+be resized for you automatically (@pxref{Variables,,
+@code{automatic-tiling}}).
-The most efficient means of finding something quickly in a manual is
-the @samp{i} command (@code{index-search}). This command prompts for
-a string, and then looks for that string in all the indices of the
-current Info manual. If it finds a matching index entry, it displays
-the node to which that entry refers and prints the full text of the
-entry in the echo area. You can press @samp{,}
-(@code{next-index-match}) to find more matches. A good Info manual
-has all of its important concepts indexed, so the @samp{i} command
-lets you use a manual as a reference.
+@item @kbd{C-x @kbd{0}} (@code{delete-window})
+@cindex windows, deleting
+@kindex C-x 0
+@findex delete-window
+Delete the current window from the screen. If you have made too many
+windows and your screen appears cluttered, this is the way to get rid of
+some of them.
-If you don't know what manual documents something, try the @kbd{M-x
-index-apropos} command. It prompts for a string and then looks up
-that string in all the indices of all the Info documents installed on
-your system. It can also be invoked from the command line; see
-@ref{--apropos}.
+@item @kbd{C-x @kbd{1}} (@code{keep-one-window})
+@kindex C-x 1
+@findex keep-one-window
+Delete all of the windows excepting the current one.
+@item @kbd{@key{ESC} @kbd{C-v}} (@code{scroll-other-window})
+@kindex ESC C-v, in Info windows
+@findex scroll-other-window
+Scroll the other window, in the same fashion that @samp{C-v} might
+scroll the current window. Given a negative argument, scroll the
+``other'' window backward.
-@node Xref Commands
-@chapter Selecting Cross-references
+@item @kbd{C-x @kbd{^}} (@code{grow-window})
+@kindex C-x ^
+@findex grow-window
+Grow (or shrink) the current window. Given a numeric argument, grow
+the current window that many lines; with a negative numeric argument,
+shrink the window instead.
-We have already discussed the @samp{Next}, @samp{Prev}, and @samp{Up}
-pointers which appear at the top of a node. In addition to these
-pointers, a node may contain other pointers which refer you to a
-different node, perhaps in another Info file. Such pointers are called
-@dfn{cross-references}, or @dfn{xrefs} for short.
+@item @kbd{C-x @kbd{t}} (@code{tile-windows})
+@cindex tiling
+@kindex C-x t
+@findex tile-windows
+Divide the available screen space among all of the visible windows.
+Each window is given an equal portion of the screen in which to
+display its contents. The variable @code{automatic-tiling} can cause
+@code{tile-windows} to be called when a window is created or deleted.
+@xref{Variables,, @code{automatic-tiling}}.
+@end table
-@menu
-* Parts of an Xref:: What a cross-reference is made of.
-* Selecting Xrefs:: Commands for selecting menu or note items.
-@end menu
+@node The Echo Area
+@section The Echo Area
+@cindex echo area
-@node Parts of an Xref
-@section Parts of an Xref
+The @dfn{echo area} is a one line window which appears at the bottom of
+the screen. It is used to display informative or error messages, and to
+read lines of input from you when that is necessary. Almost all of the
+commands available in the echo area are identical to their Emacs
+counterparts, so please refer to that documentation for greater depth of
+discussion on the concepts of editing a line of text. The following
+table briefly lists the commands that are available while input is being
+read in the echo area:
-Cross-references have two major parts: the first part is called the
-@dfn{label}; it is the name that you can use to refer to the cross
-reference, and the second is the @dfn{target}; it is the full name of
-the node that the cross-reference points to.
+@table @asis
+@item @kbd{C-f} (@code{echo-area-forward})
+@itemx @key{RIGHT} (an arrow key)
+@kindex C-f, in the echo area
+@kindex RIGHT, in the echo area
+@findex echo-area-forward
+Move forward a character.
-The target is separated from the label by a colon @samp{:}; first the
-label appears, and then the target. For example, in the sample menu
-cross-reference below, the single colon separates the label from the
-target.
+@item @kbd{C-b} (@code{echo-area-backward})
+@itemx @key{LEFT} (an arrow key)
+@kindex LEFT, in the echo area
+@kindex C-b, in the echo area
+@findex echo-area-backward
+Move backward a character.
-@example
-* Foo Label: Foo Target. More information about Foo.
-@end example
+@item @kbd{C-a} (@code{echo-area-beg-of-line})
+@kindex C-a, in the echo area
+@findex echo-area-beg-of-line
+Move to the start of the input line.
-Note the @samp{.} which ends the name of the target. The @samp{.} is
-not part of the target; it serves only to let Info know where the target
-name ends.
+@item @kbd{C-e} (@code{echo-area-end-of-line})
+@kindex C-e, in the echo area
+@findex echo-area-end-of-line
+Move to the end of the input line.
-A shorthand way of specifying references allows two adjacent colons to
-stand for a target name which is the same as the label name:
+@item @kbd{M-f} (@code{echo-area-forward-word})
+@itemx @kbd{C-@key{RIGHT}} (DOS/Windows only)
+@kindex M-f, in the echo area
+@findex echo-area-forward-word
+Move forward a word.
-@example
-* Foo Commands:: Commands pertaining to Foo.
-@end example
+@kindex C-RIGHT, in the echo area
+On DOS/Windows, @kbd{C-@key{RIGHT}} moves forward by words.
-In the above example, the name of the target is the same as the name of
-the label, in this case @code{Foo Commands}.
+@item @kbd{M-b} (@code{echo-area-backward-word})
+@itemx @kbd{C-@key{LEFT}} (DOS/Windows only)
+@kindex M-b, in the echo area
+@findex echo-area-backward-word
+Move backward a word.
-You will normally see two types of cross-reference while viewing nodes:
-@dfn{menu} references, and @dfn{note} references. Menu references
-appear within a node's menu; they begin with a @samp{*} at the beginning
-of a line, and continue with a label, a target, and a comment which
-describes what the contents of the node pointed to contains.
+@kindex C-LEFT, in the echo area
+On DOS/Windows, @kbd{C-@key{LEFT}} moves backward by words.
-Note references appear within the body of the node text; they begin with
-@code{*Note}, and continue with a label and a target.
+@item @kbd{C-d} (@code{echo-area-delete})
+@kindex C-d, in the echo area
+@findex echo-area-delete
+Delete the character under the cursor.
-Like @samp{Next}, @samp{Prev}, and @samp{Up} pointers, cross-references
-can point to any valid node. They are used to refer you to a place
-where more detailed information can be found on a particular subject.
-Here is a cross-reference which points to a node within the Texinfo
-documentation: @xref{xref, , Writing an Xref, texinfo, the Texinfo
-Manual}, for more information on creating your own texinfo cross
-references.
+@item @key{DEL} (@code{echo-area-rubout})
+@kindex DEL, in the echo area
+@findex echo-area-rubout
+Delete the character behind the cursor.
-@node Selecting Xrefs
-@section Selecting Xrefs
+On some keyboards, this key is designated @key{BS}, for
+@samp{Backspace}. Those keyboards will usually bind @key{DEL} in the
+echo area to @code{echo-area-delete}.
-The following table lists the Info commands which operate on menu items.
+@item @kbd{C-g} (@code{echo-area-abort})
+@kindex C-g, in the echo area
+@findex echo-area-abort
+Cancel or quit the current operation. If completion is being read, this
+command discards the text of the input line which does not match any
+completion. If the input line is empty, it aborts the calling function.
-@table @asis
-@item @kbd{1} (@code{menu-digit})
-@itemx @kbd{2} @dots{} @kbd{9}
-@itemx @kbd{M-1}, vi-like operation
-@itemx @kbd{M-2} @dots{} @kbd{M-9}, vi-like operation
-@cindex 1 @dots{} 9, in Info windows
-@cindex M-1 @dots{} M-9, vi-like operation
-@kindex 1 @dots{} 9, in Info windows
-@kindex M-1 @dots{} M-9, vi-like operation
-@findex menu-digit
-Within an Info window, pressing a single digit, (such as @samp{1}),
-selects that menu item, and places its node in the current window.
-For convenience, there is one exception; pressing @samp{0} selects the
-@emph{last} item in the node's menu. When @samp{--vi-keys} is in
-effect, digits set the numeric argument, so these commands are remapped
-to their @samp{M-} varieties. For example, to select the last menu
-item, press @kbd{M-0}.
+@item @key{RET} (@code{echo-area-newline})
+@kindex RET, in the echo area
+@findex echo-area-newline
+Accept (or forces completion of) the current input line.
-@item @kbd{0} (@code{last-menu-item})
-@itemx @kbd{M-0}, vi-like operation
-@kindex 0, in Info windows
-@kindex M-0, vi-like operation
-@findex last-menu-item
-Select the last item in the current node's menu.
+@item @kbd{C-q} (@code{echo-area-quoted-insert})
+@kindex C-q, in the echo area
+@findex echo-area-quoted-insert
+Insert the next character verbatim. This is how you can insert control
+characters into a search string.
-@item @kbd{m} (@code{menu-item})
-@kindex m
-@findex menu-item
-Reads the name of a menu item in the echo area and selects its node.
-Completion is available while reading the menu label. @xref{The Echo
-Area, completion}.
+@item @kbd{M-@key{TAB}} (@code{echo-area-tab-insert})
+@itemx @kbd{Shift-@key{TAB}} (on DOS/Windows only)
+@kindex M-TAB, in the echo area
+@kindex Shift-TAB, in the echo area
+@findex echo-area-tab-insert
+Insert a @key{TAB} character.
-@item @code{@kbd{M-x} find-menu}
-@findex find-menu
-Move the cursor to the start of this node's menu.
-@end table
+@kindex Shift-TAB, in the echo area
+@kindex BackTab, in the echo area
+On DOS/Windows only, the @kbd{Shift-@key{TAB}} key is an alias for
+@kbd{M-@key{TAB}}. This key is sometimes called @samp{BackTab}.
-This table lists the Info commands which operate on cross-references.
+@item @kbd{C-t} (@code{echo-area-transpose-chars})
+@kindex C-t, in the echo area
+@findex echo-area-transpose-chars
+Transpose the characters at the cursor.
+
+@item @var{printing character}
+@kindex printing characters, in the echo area
+Insert the character.
-@table @asis
-@item @kbd{f} (@code{xref-item})
-@itemx @kbd{r}
-@kindex f
-@kindex r
-@findex xref-item
-Reads the name of a note cross-reference in the echo area and selects
-its node. Completion is available while reading the cross-reference
-label. @xref{The Echo Area, completion}.
@end table
-Finally, the next few commands operate on menu or note references alike:
+The next group of commands deal with @dfn{killing}, and @dfn{yanking}
+text. (Sometimes these operations are called @dfn{cut} and
+@dfn{paste}, respectively.) For an in-depth discussion, see
+@ref{Killing, , Killing and Deleting, emacs, the GNU Emacs Manual}.
@table @asis
-@item @key{TAB} (@code{move-to-next-xref})
-@kindex TAB, in Info windows
-@findex move-to-next-xref
-Move the cursor to the start of the next nearest menu item or note
-reference in this node. You can then use @key{RET}
-(@code{select-reference-this-line}) to select the menu or note reference.
-
-@item @kbd{M-@key{TAB}} (@code{move-to-prev-xref})
-@itemx @kbd{BackTab}
-@itemx @kbd{Shift-@key{TAB}} (on DOS/Windows only)
-@kindex M-TAB, in Info windows
-@findex move-to-prev-xref
-Move the cursor the start of the nearest previous menu item or note
-reference in this node.
-
-@kindex Shift-TAB, in Info windows
-@kindex BackTab, in Info windows
-The @kbd{BackTab} key can be produced on some terminals with
-@kbd{Shift-@key{TAB}}.
+@item @kbd{M-d} (@code{echo-area-kill-word})
+@kindex M-d, in the echo area
+@findex echo-area-kill-word
+Kill the word following the cursor.
-@item @key{RET} (@code{select-reference-this-line})
-@kindex RET, in Info windows
-@findex select-reference-this-line
-Select the menu item or note reference appearing on this line.
-@end table
+@item @kbd{M-@key{DEL}} (@code{echo-area-backward-kill-word})
+@itemx @kbd{M-@key{BS}}
+@kindex M-DEL, in the echo area
+@findex echo-area-backward-kill-word
+Kill the word preceding the cursor.
+@kindex M-BS, in the echo area
+On some keyboards, the @samp{Backspace} key is used instead of
+@code{DEL}, so @code{M-@key{Backspace}} has the same effect as
+@code{M-@key{DEL}}.
-@node Window Commands
-@chapter Manipulating Multiple Windows
-@cindex windows, manipulating
+@item @kbd{C-k} (@code{echo-area-kill-line})
+@kindex C-k, in the echo area
+@findex echo-area-kill-line
+Kill the text from the cursor to the end of the line.
-A @dfn{window} is a place to show the text of a node. Windows have a
-view area where the text of the node is displayed, and an associated
-@dfn{mode line}, which briefly describes the node being viewed.
+@item @kbd{C-x @key{DEL}} (@code{echo-area-backward-kill-line})
+@kindex C-x DEL, in the echo area
+@findex echo-area-backward-kill-line
+Kill the text from the cursor to the beginning of the line.
-GNU Info supports multiple windows appearing in a single screen; each
-window is separated from the next by its mode line. At any time, there
-is only one @dfn{active} window, that is, the window in which the cursor
-appears. There are commands available for creating windows, changing
-the size of windows, selecting which window is active, and for deleting
-windows.
+@item @kbd{C-y} (@code{echo-area-yank})
+@kindex C-y, in the echo area
+@findex echo-area-yank
+Yank back the contents of the last kill.
-@menu
-* The Mode Line:: What appears in the mode line?
-* Basic Windows:: Manipulating windows in Info.
-* The Echo Area:: Used for displaying errors and reading input.
-@end menu
+@item @kbd{M-y} (@code{echo-area-yank-pop})
+@kindex M-y, in the echo area
+@findex echo-area-yank-pop
+Yank back a previous kill, removing the last yanked text first.
+@end table
-@node The Mode Line
-@section The Mode Line
+@cindex completion
+Sometimes when reading input in the echo area, the command that needed
+input will only accept one of a list of several choices. The choices
+represent the @dfn{possible completions}, and you must respond with one
+of them. Since there are a limited number of responses you can make,
+Info allows you to abbreviate what you type, only typing as much of the
+response as is necessary to uniquely identify it. In addition, you can
+request Info to fill in as much of the response as is possible; this
+is called @dfn{completion}.
-A @dfn{mode line} is a line of inverse video which appears at the bottom
-of an Info window. It describes the contents of the window just above
-it; this information includes the name of the file and node appearing in
-that window, the number of screen lines it takes to display the node,
-and the percentage of text that is above the top of the window.
+The following commands are available when completing in the echo area:
-Here is a sample mode line for a window containing a file
-named @file{dir}, showing the node @samp{Top}.
+@table @asis
+@item @key{TAB} (@code{echo-area-complete})
+@kindex TAB, in the echo area
+@findex echo-area-complete
+Insert as much of a completion as is possible. Otherwise,
+display a window containing a list of the possible completions of what
+you have typed so far. For example, if the available choices are:
@example
@group
------Info: (dir)Top, 40 lines --Top-------------------------------------
- ^^ ^ ^^^ ^^
- (file)Node #lines where
+bar
+foliate
+food
+forget
@end group
@end example
-Truncation of long lines (as opposed to wrapping them to the next
-display line, @pxref{Scrolling Commands, toggle-wrap}) is indicated by a
-@samp{$} at the left edge of the mode line:
+@noindent
+and you have typed an @samp{f}, followed by @key{TAB}, this
+would result in @samp{fo} appearing in the echo area, since
+all of the choices which begin with @samp{f} continue with @samp{o}.
+
+Now if you type @key{TAB} again, Info will pop
+up a window showing a node called @samp{*Completions*} which lists the
+possible completions like this:
@example
---$--Info: (texinfo)Top, 480 lines --Top--------------------------------
+@group
+3 completions:
+foliate food
+forget
+@end group
@end example
-When Info makes a node internally, such that there is no corresponding
-info file on disk, the name of the node is surrounded by asterisks
-(@samp{*}). The name itself tells you what the contents of the window
-are; the sample mode line below shows an internally constructed node
-showing possible completions:
+@noindent
+i.e., all of the choices which begin with @samp{fo}.
-@example
------Info: *Completions*, 7 lines --All---------------------------------
-@end example
+Now, typing @samp{l} followed by @samp{TAB} results in @samp{foliate}
+appearing in the echo area, since that is the only choice which begins
+with @samp{fol}.
-@node Basic Windows
-@section Window Commands
+@item @kbd{@key{ESC} C-v} (@code{echo-area-scroll-completions-window})
+@kindex ESC C-v, in the echo area
+@findex echo-area-scroll-completions-window
+Scroll the completions window, if that is visible, or the ``other''
+window if not.
+@end table
-It can be convenient to view more than one node at a time. To allow
-this, Info can display more than one @dfn{window}. Each window has its
-own mode line (@pxref{The Mode Line}) and history of nodes viewed in that
-window (@pxref{Node Commands, , @code{history-node}}).
+
+@node Printing Nodes
+@chapter Printing Nodes
+@cindex printing
+
+In general, we recommend that you use @TeX{} to format the document and
+print sections of it, by running @code{tex} on the Texinfo source file.
+However, you may wish to print out the contents of a node as a quick
+reference document for later use, or if you don't have @TeX{} installed.
+Info provides you with a command for doing this.
@table @asis
-@item @kbd{C-x @kbd{o}} (@code{next-window})
-@cindex windows, selecting
-@kindex C-x o
-@findex next-window
-Select the next window on the screen. Note that the echo area can only be
-selected if it is already in use, and you have left it temporarily.
-Normally, @samp{C-x o} simply moves the cursor into the next window on
-the screen, or if you are already within the last window, into the first
-window on the screen. Given a numeric argument, @samp{C-x o} moves over
-that many windows. A negative argument causes @samp{C-x o} to select
-the previous window on the screen.
+@item @code{@kbd{M-x} print-node}
+@findex print-node
+@cindex @env{INFO_PRINT_COMMAND}, environment variable
+Pipe the contents of the current node through the command in the
+environment variable @env{INFO_PRINT_COMMAND}. If the variable does not
+exist, the node is simply piped to @code{lpr} (on DOS/Windows, the
+default is to print the node to the local printer device, @file{PRN}).
-@item @code{@kbd{M-x} prev-window}
-@findex prev-window
-Select the previous window on the screen. This is identical to
-@samp{C-x o} with a negative argument.
+@cindex printing nodes to the local printer
+@cindex local printer device
+The value of @env{INFO_PRINT_COMMAND} may begin with the @samp{>}
+character, as in @samp{>/dev/printer}, in which case Info treats the
+rest as the name of a file or a device. Instead of piping to a command,
+Info opens the file, writes the node contents, and closes the file,
+under the assumption that text written to that file will be printed by
+the underlying OS.
+@end table
-@item @kbd{C-x @kbd{2}} (@code{split-window})
-@cindex windows, creating
-@kindex C-x 2
-@findex split-window
-Split the current window into two windows, both showing the same node.
-Each window is one half the size of the original window, and the
-cursor remains in the original window. The variable
-@code{automatic-tiling} can cause all of the windows on the screen to
-be resized for you automatically (@pxref{Variables,,
-@code{automatic-tiling}}).
-@item @kbd{C-x @kbd{0}} (@code{delete-window})
-@cindex windows, deleting
-@kindex C-x 0
-@findex delete-window
-Delete the current window from the screen. If you have made too many
-windows and your screen appears cluttered, this is the way to get rid of
-some of them.
+@node Miscellaneous Commands
+@chapter Miscellaneous Commands
-@item @kbd{C-x @kbd{1}} (@code{keep-one-window})
-@kindex C-x 1
-@findex keep-one-window
-Delete all of the windows excepting the current one.
+GNU Info contains several commands which self-document GNU Info:
-@item @kbd{@key{ESC} @kbd{C-v}} (@code{scroll-other-window})
-@kindex ESC C-v, in Info windows
-@findex scroll-other-window
-Scroll the other window, in the same fashion that @samp{C-v} might
-scroll the current window. Given a negative argument, scroll the
-``other'' window backward.
+@table @asis
+@item @code{@kbd{M-x} describe-command}
+@cindex functions, describing
+@cindex commands, describing
+@findex describe-command
+Read the name of an Info command in the echo area and then display a
+brief description of what that command does.
-@item @kbd{C-x @kbd{^}} (@code{grow-window})
-@kindex C-x ^
-@findex grow-window
-Grow (or shrink) the current window. Given a numeric argument, grow
-the current window that many lines; with a negative numeric argument,
-shrink the window instead.
+@item @code{@kbd{M-x} describe-key}
+@cindex keys, describing
+@findex describe-key
+Read a key sequence in the echo area, and then display the name and
+documentation of the Info command that the key sequence invokes.
-@item @kbd{C-x @kbd{t}} (@code{tile-windows})
-@cindex tiling
-@kindex C-x t
-@findex tile-windows
-Divide the available screen space among all of the visible windows.
-Each window is given an equal portion of the screen in which to
-display its contents. The variable @code{automatic-tiling} can cause
-@code{tile-windows} to be called when a window is created or deleted.
-@xref{Variables,, @code{automatic-tiling}}.
-@end table
+@item @code{@kbd{M-x} describe-variable}
+Read the name of a variable in the echo area and then display a brief
+description of what the variable affects.
-@node The Echo Area
-@section The Echo Area
-@cindex echo area
+@item @code{@kbd{M-x} where-is}
+@findex where-is
+Read the name of an Info command in the echo area, and then display
+a key sequence which can be typed in order to invoke that command.
-The @dfn{echo area} is a one line window which appears at the bottom of
-the screen. It is used to display informative or error messages, and to
-read lines of input from you when that is necessary. Almost all of the
-commands available in the echo area are identical to their Emacs
-counterparts, so please refer to that documentation for greater depth of
-discussion on the concepts of editing a line of text. The following
-table briefly lists the commands that are available while input is being
-read in the echo area:
+@item @kbd{H} (@code{get-help-window})
+@itemx @key{F1} (on DOS/Windows only)
+@kindex C-h
+@kindex ?, in Info windows
+@kindex F1
+@findex get-help-window
+Create (or Move into) the window displaying @code{*Help*}, and place
+a node containing a quick reference card into it. This window displays
+the most concise information about GNU Info available.
+
+@item @kbd{h} (@code{get-info-help-node})
+@kindex h
+@findex get-info-help-node
+Try hard to visit the node @code{(info)Help}. The Info file
+@file{info.texi} distributed with GNU Emacs contains
+this node. Of course, the file must first be processed with
+@code{makeinfo}, and then placed into the location of your Info directory.
+
+@item @kbd{=} (@code{display-file-info})
+@cindex current file, information about
+@findex display-file-info
+@kindex =, in Info windows
+Show information about what's currently being viewed in the echo area:
+the Info file name, and current line number and percentage within the
+current node.
+
+@item @code{@kbd{M-x} info-version}
+@findex info-version
+Display the name and version of the currently running Info program.
+
+@end table
+
+Here are the commands for creating a numeric argument:
@table @asis
-@item @kbd{C-f} (@code{echo-area-forward})
-@itemx @key{RIGHT} (an arrow key)
-@kindex C-f, in the echo area
-@kindex RIGHT, in the echo area
-@findex echo-area-forward
-Move forward a character.
+@item @kbd{C-u} (@code{universal-argument})
+@cindex numeric arguments
+@kindex C-u
+@findex universal-argument
+Start (or multiply by 4) the current numeric argument. @samp{C-u} is
+a good way to give a small numeric argument to cursor movement or
+scrolling commands; @samp{C-u C-v} scrolls the screen 4 lines, while
+@samp{C-u C-u C-n} moves the cursor down 16 lines. @samp{C-u} followed
+by digit keys sets the numeric argument to the number thus typed:
+@kbd{C-u 1 2 0} sets the argument to 120.
+
+@item @kbd{M-1} (@code{add-digit-to-numeric-arg})
+@itemx @kbd{1}, vi-like operation
+@itemx @kbd{M-2} @dots{} @kbd{M-9}
+@itemx @kbd{2} @dots{} @kbd{9}, vi-like operation
+@itemx @kbd{M-0}
+@itemx @kbd{0}, vi-like operation
+@kindex M-0 @dots{} M-9
+@kindex 0 @dots{} 9, vi-like operation
+@findex add-digit-to-numeric-arg
+Add the digit value of the invoking key to the current numeric
+argument. Once Info is reading a numeric argument, you may just type
+the digits of the argument, without the Meta prefix. For example, you
+might give @samp{C-l} a numeric argument of 32 by typing:
+
+@example
+@kbd{C-u 3 2 C-l}
+@end example
+
+@noindent
+or
+
+@example
+@kbd{M-3 2 C-l}
+@end example
-@item @kbd{C-b} (@code{echo-area-backward})
-@itemx @key{LEFT} (an arrow key)
-@kindex LEFT, in the echo area
-@kindex C-b, in the echo area
-@findex echo-area-backward
-Move backward a character.
+@item @kbd{M--} (@code{add-digit-to-numeric-arg})
+@itemx @kbd{-}
+@kindex M--
+@kindex -
+@cindex negative arguments
+@cindex arguments, negative
+@cindex numeric arguments, negative
+To make a negative argument, type @kbd{-}. Typing @kbd{-} alone makes
+a negative argument with a value of @minus{}1. If you continue to
+type digit or Meta-digit keys after @kbd{-}, the result is a negative
+number produced by those digits.
-@item @kbd{C-a} (@code{echo-area-beg-of-line})
-@kindex C-a, in the echo area
-@findex echo-area-beg-of-line
-Move to the start of the input line.
+@kbd{-} doesn't work when you type in the echo area, because you need to
+be able to insert the @samp{-} character itself; use @kbd{M--} instead,
+if you need to specify negative arguments in the echo area.
+@end table
-@item @kbd{C-e} (@code{echo-area-end-of-line})
-@kindex C-e, in the echo area
-@findex echo-area-end-of-line
-Move to the end of the input line.
+@key{C-g} is used to abort the reading of a multi-character key
+sequence, to cancel lengthy operations (such as multi-file searches) and
+to cancel reading input in the echo area.
-@item @kbd{M-f} (@code{echo-area-forward-word})
-@itemx @kbd{C-@key{RIGHT}} (DOS/Windows only)
-@kindex M-f, in the echo area
-@findex echo-area-forward-word
-Move forward a word.
+@table @asis
+@item @kbd{C-g} (@code{abort-key})
+@cindex cancelling typeahead
+@cindex cancelling the current operation
+@kindex C-g, in Info windows
+@findex abort-key
+Cancel current operation.
+@end table
-@kindex C-RIGHT, in the echo area
-On DOS/Windows, @kbd{C-@key{RIGHT}} moves forward by words.
+The @samp{q} command of Info simply quits running Info.
-@item @kbd{M-b} (@code{echo-area-backward-word})
-@itemx @kbd{C-@key{LEFT}} (DOS/Windows only)
-@kindex M-b, in the echo area
-@findex echo-area-backward-word
-Move backward a word.
+@table @asis
+@item @kbd{q} (@code{quit})
+@itemx @kbd{C-x C-c}
+@cindex quitting
+@kindex q
+@kindex C-x C-c
+@findex quit
+Exit GNU Info.
+@end table
-@kindex C-LEFT, in the echo area
-On DOS/Windows, @kbd{C-@key{LEFT}} moves backward by words.
+If the operating system tells GNU Info that the screen is 60 lines tall,
+and it is actually only 40 lines tall, here is a way to tell Info that
+the operating system is correct.
-@item @kbd{C-d} (@code{echo-area-delete})
-@kindex C-d, in the echo area
-@findex echo-area-delete
-Delete the character under the cursor.
+@table @asis
+@item @code{@kbd{M-x} set-screen-height}
+@findex set-screen-height
+@cindex screen, changing the height of
+Read a height value in the echo area and set the height of the
+displayed screen to that value.
+@end table
-@item @key{DEL} (@code{echo-area-rubout})
-@kindex DEL, in the echo area
-@findex echo-area-rubout
-Delete the character behind the cursor.
+On MS-DOS/MS-Windows, this command actually tries to change the
+dimensions of the visible screen to the value you type in the echo
+area.
-On some keyboards, this key is designated @key{BS}, for
-@samp{Backspace}. Those keyboards will usually bind @key{DEL} in the
-echo area to @code{echo-area-delete}.
+Finally, Info provides a convenient way to display footnotes which might
+be associated with the current node that you are viewing:
-@item @kbd{C-g} (@code{echo-area-abort})
-@kindex C-g, in the echo area
-@findex echo-area-abort
-Cancel or quit the current operation. If completion is being read, this
-command discards the text of the input line which does not match any
-completion. If the input line is empty, it aborts the calling function.
+@table @asis
+@item @kbd{@key{ESC} C-f} (@code{show-footnotes})
+@kindex ESC C-f
+@findex show-footnotes
+@cindex footnotes, displaying
+Show the footnotes (if any) associated with the current node in
+another window. You can have Info automatically display the footnotes
+associated with a node when the node is selected by setting the
+variable @code{automatic-footnotes}. @xref{Variables,,
+@code{automatic-footnotes}}.
+@end table
-@item @key{RET} (@code{echo-area-newline})
-@kindex RET, in the echo area
-@findex echo-area-newline
-Accept (or forces completion of) the current input line.
-@item @kbd{C-q} (@code{echo-area-quoted-insert})
-@kindex C-q, in the echo area
-@findex echo-area-quoted-insert
-Insert the next character verbatim. This is how you can insert control
-characters into a search string.
+@node Invoking Info
+@chapter Invoking Info
-@item @kbd{M-@key{TAB}} (@code{echo-area-tab-insert})
-@itemx @kbd{Shift-@key{TAB}} (on DOS/Windows only)
-@kindex M-TAB, in the echo area
-@kindex Shift-TAB, in the echo area
-@findex echo-area-tab-insert
-Insert a @key{TAB} character.
+@cindex Info, invoking
+@cindex invoking Info
+@cindex command line options
+@cindex options, command line
+@cindex arguments, command line
-@kindex Shift-TAB, in the echo area
-@kindex BackTab, in the echo area
-On DOS/Windows only, the @kbd{Shift-@key{TAB}} key is an alias for
-@kbd{M-@key{TAB}}. This key is sometimes called @samp{BackTab}.
+GNU Info accepts several options to control the initial node or nodes
+being viewed, and to specify which directories to search for Info files.
+Here is a template showing an invocation of GNU Info from the shell:
-@item @kbd{C-t} (@code{echo-area-transpose-chars})
-@kindex C-t, in the echo area
-@findex echo-area-transpose-chars
-Transpose the characters at the cursor.
+@example
+info [@var{option}@dots{}] [@var{manual}] [@var{menu-or-index-item}@dots{}]
+@end example
-@item @var{printing character}
-@kindex printing characters, in the echo area
-Insert the character.
+Info will look for an entry called @var{manual} in the directory
+files, which are named @file{dir}, that it finds in its search path.
+The search is case-insensitive and considers substrings.
+(If @var{manual} is not given, by default Info displays a composite
+directory listing, constructed by combining the @file{dir} files.)
+A basic example:
-@end table
+@example
+info coreutils
+@end example
-The next group of commands deal with @dfn{killing}, and @dfn{yanking}
-text. (Sometimes these operations are called @dfn{cut} and
-@dfn{paste}, respectively.) For an in-depth discussion, see
-@ref{Killing, , Killing and Deleting, emacs, the GNU Emacs Manual}.
+This looks for an entry labelled @code{coreutils}, or
+@code{Coreutils}, etc., and if found, displays the referenced file
+(e.g., @file{coreutils.info}) at the location given.
+@code{info coreu} will find it too, if there is no better match.
-@table @asis
-@item @kbd{M-d} (@code{echo-area-kill-word})
-@kindex M-d, in the echo area
-@findex echo-area-kill-word
-Kill the word following the cursor.
+Another example:
-@item @kbd{M-@key{DEL}} (@code{echo-area-backward-kill-word})
-@itemx @kbd{M-@key{BS}}
-@kindex M-DEL, in the echo area
-@findex echo-area-backward-kill-word
-Kill the word preceding the cursor.
+@example
+info ls
+@end example
-@kindex M-BS, in the echo area
-On some keyboards, the @samp{Backspace} key is used instead of
-@code{DEL}, so @code{M-@key{Backspace}} has the same effect as
-@code{M-@key{DEL}}.
+Assuming the normal @code{dir} entry for @code{ls}, this will show the
+@code{ls} documentation, which happens to be within the
+@code{coreutils} manual rather than a separate manual. The @code{dir}
+entries can point to any node within a manual, so that users don't
+have to be concerned with the exact structure used by different
+authors.
-@item @kbd{C-k} (@code{echo-area-kill-line})
-@kindex C-k, in the echo area
-@findex echo-area-kill-line
-Kill the text from the cursor to the end of the line.
+@cindex compressed Info files
+@cindex files, compressed
+@cindex Info files, compressed
+If no entry is found in the directories, Info looks for a file called
+@var{manual} in its search path. If not found, Info looks for it
+with the file extensions @file{.info}, @file{-info}, and @file{.inf}.
+For each of these known extensions, if a regular file is not found,
+Info looks for a compressed file.@footnote{Info supports files
+compressed with @code{gzip}, @code{xz}, @code{bzip2}, @code{lzip},
+@code{lzma}, @code{compress} and @code{yabba} programs, assumed
+to have extensions @file{.z}, @file{.gz}, @file{.xz}, @file{.bz2},
+@file{.lz}, @file{.lzma}, @file{.Z}, and @file{.Y} respectively.
-@item @kbd{C-x @key{DEL}} (@code{echo-area-backward-kill-line})
-@kindex C-x DEL, in the echo area
-@findex echo-area-backward-kill-line
-Kill the text from the cursor to the beginning of the line.
+On MS-DOS, Info allows for the Info
+extension, such as @code{.inf}, and the short compressed file extensions,
+such as @file{.z} and @file{.gz}, to be merged into a single extension,
+since DOS doesn't allow more than a single dot in the basename of
+a file. Thus, on MS-DOS, if Info looks for @file{bison}, file names
+like @file{bison.igz} and @file{bison.inz} will be found and decompressed
+by @code{gunzip}.}
-@item @kbd{C-y} (@code{echo-area-yank})
-@kindex C-y, in the echo area
-@findex echo-area-yank
-Yank back the contents of the last kill.
+You can specify the name of a node to visit with the @code{--node} or
+@code{-n} option. Alternatively, you can specify the file and node
+together using the same format that occurs in Info cross-references.
+These two examples both load the @samp{Files} node within the
+@samp{emacs} manual:
-@item @kbd{M-y} (@code{echo-area-yank-pop})
-@kindex M-y, in the echo area
-@findex echo-area-yank-pop
-Yank back a previous kill, removing the last yanked text first.
-@end table
+@example
+info emacs -n Files
+info '(emacs)Files'
+@end example
-@cindex completion
-Sometimes when reading input in the echo area, the command that needed
-input will only accept one of a list of several choices. The choices
-represent the @dfn{possible completions}, and you must respond with one
-of them. Since there are a limited number of responses you can make,
-Info allows you to abbreviate what you type, only typing as much of the
-response as is necessary to uniquely identify it. In addition, you can
-request Info to fill in as much of the response as is possible; this
-is called @dfn{completion}.
+@cindex absolute Info file names
+@cindex relative Info file names
+@cindex file names, relative
+@cindex Info files, relative
+If you want to load a file without looking in the search path, specify
+@var{manual} either as an absolute path, or as a path relative to the
+current directory which contains at least one slash character. (You
+can also use the @code{--file} option for similar behavior, described
+below.)
+Examples:
+
+@example
+info /usr/local/share/info/bash.info
+info ./document.info
+@end example
-The following commands are available when completing in the echo area:
+@noindent
+Info looks for @var{manual} only in the explicitly specified
+directory, and adds that directory to its search path.
-@table @asis
-@item @key{TAB} (@code{echo-area-complete})
-@kindex TAB, in the echo area
-@findex echo-area-complete
-Insert as much of a completion as is possible. Otherwise,
-display a window containing a list of the possible completions of what
-you have typed so far. For example, if the available choices are:
+@anchor{command-line menu items}
+@cindex menu, following
+Info treats any remaining arguments as the names of menu items, or
+(see below) index entries. The first argument is a menu item in the
+@samp{Top} node of the file loaded, the second argument is a menu item
+in the first argument's node, etc. You can move to the node of your
+choice by specifying the menu names which describe the path to that
+node. For example,
@example
-@group
-bar
-foliate
-food
-forget
-@end group
+info emacs buffers
+info texinfo Overview 'Using Texinfo'
@end example
@noindent
-and you have typed an @samp{f}, followed by @key{TAB}, this
-would result in @samp{fo} appearing in the echo area, since
-all of the choices which begin with @samp{f} continue with @samp{o}.
+The first example selects the menu item @samp{Buffers} in the node
+@samp{(emacs)Top}. The second example loads the @file{texinfo} file and
+looks in its top-level menu for a @samp{Overview} item, looks in the menu
+of the node referenced, and finally displays the node referenced by the
+@samp{Using Texinfo} item.
-Now if you type @key{TAB} again, Info will pop
-up a window showing a node called @samp{*Completions*} which lists the
-possible completions like this:
+If there was only one @var{menu-or-index-item} argument and it wasn't
+found as a menu item, Info looks for it as an index entry. For example:
@example
-@group
-3 completions:
-foliate food
-forget
-@end group
+info libc printf
@end example
@noindent
-i.e., all of the choices which begin with @samp{fo}.
+This loads the libc Info manual and first looks for @code{printf} in
+the top-level menu as usual; since it isn't there (at this writing),
+it then looks in the indices. If it's found there (which it is),
+the relevant node at the given location is displayed.
-Now, typing @samp{l} followed by @samp{TAB} results in @samp{foliate}
-appearing in the echo area, since that is the only choice which begins
-with @samp{fol}.
+A complete list of options follows.
-@item @kbd{@key{ESC} C-v} (@code{echo-area-scroll-completions-window})
-@kindex ESC C-v, in the echo area
-@findex echo-area-scroll-completions-window
-Scroll the completions window, if that is visible, or the ``other''
-window if not.
-@end table
+@table @code
+@anchor{--all}
+@item --all
+@itemx -a
+@cindex @code{--all} (@code{-a}) command line option
+Find all files matching @var{manual}. Three usage patterns are
+supported, as follows.
+First, if @code{--all} is used together with @option{--where},
+@command{info} prints the names of all matching files found on
+standard output (including @samp{*manpages*} if relevant) and exits.
-@node Printing Nodes
-@chapter Printing Nodes
-@cindex printing
+Second, if @code{--all} is used together with @option{--output}, the
+contents of all matched files are dumped to the specified output
+file.
-In general, we recommend that you use @TeX{} to format the document and
-print sections of it, by running @code{tex} on the Texinfo source file.
-However, you may wish to print out the contents of a node as a quick
-reference document for later use, or if you don't have @TeX{} installed.
-Info provides you with a command for doing this.
+Otherwise, an interactive session is initiated. If more than one file
+matches, a menu node is displayed listing the matches and allowing you
+to select one. This menu node can be brought back at any time by
+pressing @kbd{C-x f}. If there is only one match, @command{info}
+starts as usual.
-@table @asis
-@item @code{@kbd{M-x} print-node}
-@findex print-node
-@cindex @env{INFO_PRINT_COMMAND}, environment variable
-Pipe the contents of the current node through the command in the
-environment variable @env{INFO_PRINT_COMMAND}. If the variable does not
-exist, the node is simply piped to @code{lpr} (on DOS/Windows, the
-default is to print the node to the local printer device, @file{PRN}).
+When used with the @option{--index-search} option, @command{info}
+displays a menu of matching index entries (just as the
+@code{virtual-index} command does; see @ref{Index Commands}).
-@cindex printing nodes to the local printer
-@cindex local printer device
-The value of @env{INFO_PRINT_COMMAND} may begin with the @samp{>}
-character, as in @samp{>/dev/printer}, in which case Info treats the
-rest as the name of a file or a device. Instead of piping to a command,
-Info opens the file, writes the node contents, and closes the file,
-under the assumption that text written to that file will be printed by
-the underlying OS.
+The @option{--node} option cannot be used together with this option.
+
+@anchor{--apropos}
+@item --apropos=@var{string}
+@itemx -k @var{string}
+@cindex @code{--apropos} (@code{-k}) command line option
+@cindex Searching all indices
+@cindex Info files@r{, searching all indices}
+@cindex Apropos@r{, in Info files}
+Specify a string to search in every index of every Info file installed
+on your system. Info looks up the named @var{string} in all the
+indices it can find, prints the results to standard output, and then
+exits. If you are not sure which Info file explains certain issues,
+this option is your friend. (If your system has a lot of Info files
+installed, searching all of them might take some time!)
+
+You can invoke the apropos command from inside Info; see
+@ref{Searching Commands}.
+
+@item --debug=@var{number}
+@itemx -x @var{number}
+@cindex @code{--debug} (@code{-x}) command line option
+@cindex debugging
+Print additional debugging information. The argument specifies the
+verbosity level, so a higher level includes all the information from
+lower levels. For all available debugging output, use
+@option{-x@tie{}-1}. Info version @value{VERSION} has these levels:
+
+@table @code
+@item 1
+Print information about file handling, such as looking for @file{dir}
+files and nodes written with @samp{--output}.
+
+@item 2
+Print operations relating to @env{INFOPATH}.
+
+@item 3
+Print information about node searching.
@end table
+Debugging output goes to standard error.
-@node Miscellaneous Commands
-@chapter Miscellaneous Commands
+@item --directory @var{directory-path}
+@itemx -d @var{directory-path}
+@cindex @code{--directory} (@code{-d}) command line option
+@cindex directory path
+@cindex @env{INFOPATH}
+@anchor{INFOPATH}
+Add @var{directory-path} to the list of directory paths searched
+when Info needs to find a file. You may issue @code{--directory}
+multiple times; once for each directory which contains Info files,
+or with a list of such directories separated by a colon (or semicolon
+on MS-DOS/MS-Windows).
-GNU Info contains several commands which self-document GNU Info:
+Directories specified in the environment variable @env{INFOPATH} are added
+to the directories specified with @code{--directory}, if any. The value of
+@code{INFOPATH} is a list of directories usually separated by a colon;
+on MS-DOS/MS-Windows systems, the semicolon is used. If the value of
+@code{INFOPATH} ends with a colon (or semicolon on MS-DOS/MS-Windows),
+the initial list of directories is constructed by appending the
+build-time default to the value of @code{INFOPATH}.
-@table @asis
-@item @code{@kbd{M-x} describe-command}
-@cindex functions, describing
-@cindex commands, describing
-@findex describe-command
-Read the name of an Info command in the echo area and then display a
-brief description of what that command does.
+If you do not define @code{INFOPATH}, Info uses a default path defined
+when Info was built as the initial list of directories.
-@item @code{@kbd{M-x} describe-key}
-@cindex keys, describing
-@findex describe-key
-Read a key sequence in the echo area, and then display the name and
-documentation of the Info command that the key sequence invokes.
+Regardless of whether @code{INFOPATH} is defined, the default
+documentation directory defined when Info was built is added to the
+search path. If you do not want this directory to be included, set
+the @code{infopath-no-defaults} variable to @code{On}
+(@pxref{infopath-no-defaults}).
+
+If the list of directories contains the element @code{PATH}, that
+element is replaced by a list of directories derived from the value of
+the environment variable @code{PATH}. Each path element of the form
+@var{dir/base} is replaced by @var{dir}@code{/share/info} or
+@var{dir}@code{/info}, provided that directory exists.
-@item @code{@kbd{M-x} describe-variable}
-Read the name of a variable in the echo area and then display a brief
-description of what the variable affects.
+@item --dribble=@var{file}
+@cindex @code{--dribble} command line option
+@cindex keystrokes, recording
+@cindex remembering user keystrokes
+Specify a file where all user keystrokes will be recorded. This file
+can be used later to replay the same sequence of commands, see the
+@samp{--restore} option below.
-@item @code{@kbd{M-x} where-is}
-@findex where-is
-Read the name of an Info command in the echo area, and then display
-a key sequence which can be typed in order to invoke that command.
+@item --file @var{manual}
+@itemx -f @var{manual}
+@cindex @code{--file} (@code{-f}) command line option
+@cindex Info manual, specifying initial
+@cindex initial node, specifying
+@cindex startup node, specifying
+Specify a particular manual to visit without looking its name up in any
+@file{dir} files.
-@item @kbd{H} (@code{get-help-window})
-@itemx @key{F1} (on DOS/Windows only)
-@kindex C-h
-@kindex ?, in Info windows
-@kindex F1
-@findex get-help-window
-Create (or Move into) the window displaying @code{*Help*}, and place
-a node containing a quick reference card into it. This window displays
-the most concise information about GNU Info available.
+With this option, it starts by trying to visit
+@code{(@var{manual})Top}, i.e., the @code{Top} node in (typically)
+@file{@var{manual}.info}. As above, it tries various file extensions
+to find the file. If no such file (or node) can be found, Info exits
+without doing anything. As with the @file{dir} lookup described above,
+any extra @var{menu-or-index-item} arguments are used to locate a node
+within the loaded file.
+
+If @var{manual} is an absolute file name, or begins with @file{./} or
+@file{../}, or contains an intermediate directory, Info will only look
+for the file in the directory specified, and add this directory to
+@code{INFOPATH}. (This is the same as what happens when @code{--file}
+is not given.)
+
+@item --help
+@itemx -h
+@cindex @code{--help} (@code{-h}) command line option
+Output a brief description of the available Info command-line options.
+
+@item --index-search @var{string}
+@cindex @code{--index-search} command line option
+@cindex index search, selecting from the command line
+@cindex online help, using Info as
+After processing all command-line arguments, go to the index in the
+selected Info file and search for index entries which match
+@var{string}. If such an entry is found, the Info session begins with
+displaying the node pointed to by the first matching index entry;
+press @kbd{,} to step through the rest of the matching entries. If no
+such entry exists, print @samp{no entries found} and exit with nonzero
+status. This can be used from another program as a way to provide
+online help, or as a quick way of starting to read an Info file at a
+certain node when you don't know the exact name of that node.
-@item @kbd{h} (@code{get-info-help-node})
-@kindex h
-@findex get-info-help-node
-Try hard to visit the node @code{(info)Help}. The Info file
-@file{info.texi} distributed with GNU Emacs contains
-this node. Of course, the file must first be processed with
-@code{makeinfo}, and then placed into the location of your Info directory.
+When used with the @option{--all} option, @command{info}
+displays a menu of matching index entries (just as the
+@code{virtual-index} command does; see @ref{Index Commands}).
-@item @kbd{=} (@code{display-file-info})
-@cindex current file, information about
-@findex display-file-info
-@kindex =, in Info windows
-Show information about what's currently being viewed in the echo area:
-the Info file name, and current line number and percentage within the
-current node.
+This command can also be invoked from inside Info; @pxref{Searching
+Commands}.
-@item @code{@kbd{M-x} info-version}
-@findex info-version
-Display the name and version of the currently running Info program.
+@item --init-file @var{INIT-FILE}
+@anchor{--init-file}
+@cindex @code{--init-file} command line option
+Read key bindings and variable settings from @var{INIT-FILE} instead
+of the @file{.infokey} file in your home directory. @xref{Custom Key
+Bindings}.
-@end table
+@item --node @var{nodename}
+@itemx -n @var{nodename}
+@cindex @code{--node} (@code{-n}) command line option
+@cindex node, selecting from the command line
+Specify a particular node to visit in the initial file that Info
+loads. You may specify @code{--node} multiple times: for an interactive
+Info, each @var{nodename} is visited in its own window; for a
+non-interactive Info (such as when @code{--output} is given) each
+@var{nodename} is processed sequentially.
-Here are the commands for creating a numeric argument:
+You can specify both the file and node to the @code{--node} option
+using the usual Info syntax, but don't forget to escape the open and
+close parentheses and whitespace from the shell; for example:@*
+@t{info --node "(emacs)Buffers"}
-@table @asis
-@item @kbd{C-u} (@code{universal-argument})
-@cindex numeric arguments
-@kindex C-u
-@findex universal-argument
-Start (or multiply by 4) the current numeric argument. @samp{C-u} is
-a good way to give a small numeric argument to cursor movement or
-scrolling commands; @samp{C-u C-v} scrolls the screen 4 lines, while
-@samp{C-u C-u C-n} moves the cursor down 16 lines. @samp{C-u} followed
-by digit keys sets the numeric argument to the number thus typed:
-@kbd{C-u 1 2 0} sets the argument to 120.
+@item --output @var{file}
+@itemx -o @var{file}
+@cindex @code{--output} (@code{-o}) command line option
+@cindex file, outputting to
+@cindex outputting to a file
+Direct output to @var{file}. Each node that Info visits will be
+output to @var{file} instead of interactively viewed. A value of
+@code{-} for @var{file} means standard output.
-@item @kbd{M-1} (@code{add-digit-to-numeric-arg})
-@itemx @kbd{1}, vi-like operation
-@itemx @kbd{M-2} @dots{} @kbd{M-9}
-@itemx @kbd{2} @dots{} @kbd{9}, vi-like operation
-@itemx @kbd{M-0}
-@itemx @kbd{0}, vi-like operation
-@kindex M-0 @dots{} M-9
-@kindex 0 @dots{} 9, vi-like operation
-@findex add-digit-to-numeric-arg
-Add the digit value of the invoking key to the current numeric
-argument. Once Info is reading a numeric argument, you may just type
-the digits of the argument, without the Meta prefix. For example, you
-might give @samp{C-l} a numeric argument of 32 by typing:
+@item --no-raw-escapes
+@itemx --raw-escapes, -R
+@anchor {--raw-escapes}
+@cindex @code{--raw-escapes} (@code{-R}) command line option
+@cindex colors in documents
+@cindex ANSI escape sequences in documents
+By default, Info passes SGR terminal control sequences (also known as
+ANSI escape sequences) found in documents directly through to the
+terminal. If you use the @code{--no-raw-escapes} options, these
+sequences are displayed as other control characters are; for example, an
+@key{ESC} byte is displayed as @samp{^[}. The @code{--raw-escapes} and
+@code{-R} options do not do anything, but are included for completeness.
-@example
-@kbd{C-u 3 2 C-l}
-@end example
+@ignore
+@cindex man pages, bold and underline
+@vindex GROFF_SGR
+Some versions of Groff (@pxref{Top,,,groff,Groff}) produce man pages
+with ANSI escape sequences for bold, italics, and underlined
+characters, and for colorized text. If your @command{man} command
+uses a version of Groff that does this (original GNU Groff does), and
+your terminal supports these sequences, Info will display any bold or
+underlined text in man pages. Some distributions have modified Groff
+to require setting the @code{GROFF_SGR} environment variable to get
+these sequences. @xref{Invoking grotty,,, groff, Groff}.
+@end ignore
-@noindent
-or
+@item --restore=@var{dribble-file}
+@cindex @code{--restore} command line option
+@cindex replaying recorded keystrokes
+Read keystrokes from @var{dribble-file}, presumably recorded during
+previous Info session (see the description of the @samp{--dribble}
+option above). When the keystrokes in the files are all read, Info
+reverts its input to the usual interactive operation.
-@example
-@kbd{M-3 2 C-l}
-@end example
+@item --show-malformed-multibytes
+@itemx --no-show-malformed-multibytes
+@cindex @code{--show-malformed-multibytes} command line option
+@cindex malformed multibyte sequences, showing
+Show malformed multibyte sequences in the output. By default, such
+sequences are dropped.
-@item @kbd{M--} (@code{add-digit-to-numeric-arg})
-@itemx @kbd{-}
-@kindex M--
-@kindex -
-@cindex negative arguments
-@cindex arguments, negative
-@cindex numeric arguments, negative
-To make a negative argument, type @kbd{-}. Typing @kbd{-} alone makes
-a negative argument with a value of @minus{}1. If you continue to
-type digit or Meta-digit keys after @kbd{-}, the result is a negative
-number produced by those digits.
+@anchor{--show-options}
+@item --show-options
+@itemx --usage
+@itemx -O
+@cindex @code{--show-options} (@code{--usage}, @code{-O}) command line option
+@cindex command-line options, how to find
+@cindex invocation description, how to find
+Look for the node that describes how to invoke the
+program. The name of the program is taken from the other non-option
+arguments on the command line. For example, @samp{info emacs -O} loads
+the @code{Emacs Invocation} node of the @code{emacs} manual.
-@kbd{-} doesn't work when you type in the echo area, because you need to
-be able to insert the @samp{-} character itself; use @kbd{M--} instead,
-if you need to specify negative arguments in the echo area.
-@end table
+This option is provided to make it easier to find the
+most important usage information in a manual without navigating
+through menu hierarchies. The effect is similar to the @code{@kbd{M-x}
+goto-invocation} command (@pxref{goto-invocation}) from inside Info.
-@key{C-g} is used to abort the reading of a multi-character key
-sequence, to cancel lengthy operations (such as multi-file searches) and
-to cancel reading input in the echo area.
+@item --speech-friendly
+@itemx -b
+@cindex @code{--speech-friendly} (@code{-b}) command line option
+@cindex speech synthesizers
+On MS-DOS/MS-Windows only, this option causes Info to use standard
+file I/O functions for screen writes. (By default, Info uses direct
+writes to the video memory on these systems, for faster operation and
+colored display support.) This allows the speech synthesizers used by
+blind persons to catch the output and convert it to audible speech.
-@table @asis
-@item @kbd{C-g} (@code{abort-key})
-@cindex cancelling typeahead
-@cindex cancelling the current operation
-@kindex C-g, in Info windows
-@findex abort-key
-Cancel current operation.
-@end table
+@item --strict-node-location
+@cindex @code{--strict-node-location} command line option
+This option causes Info not to search ``nearby'' to locate nodes, and
+instead strictly use the information provided in the Info file. The
+practical use for this option is for debugging programs that write
+Info files, to check that they are outputting the correct locations.
+Due to bugs and malfeasances in the various Info writing programs over
+the years and versions, it is not advisable to ever use this option
+when just trying to read documentation.
-The @samp{q} command of Info simply quits running Info.
+@item --subnodes
+@cindex @code{--subnodes}, command line option
+This option only has meaning when given in conjunction with
+@code{--output}. It means to recursively output the nodes appearing in
+the menus of each node being output. Menu items which resolve to
+external Info files are not output, and neither are menu items which are
+members of an index. Each node is only output once.
-@table @asis
-@item @kbd{q} (@code{quit})
-@itemx @kbd{C-x C-c}
-@cindex quitting
-@kindex q
-@kindex C-x C-c
-@findex quit
-Exit GNU Info.
-@end table
+@anchor{variable-assignment}
+@item -v @var{name}=@var{value}
+@itemx --variable=@var{name}=@var{value}
+@cindex @code{--variable} (@code{-v}) command line option
+@cindex variable assignment
+Set the @command{info} variable @var{name} to @var{value}.
+@xref{Variables}.
-If the operating system tells GNU Info that the screen is 60 lines tall,
-and it is actually only 40 lines tall, here is a way to tell Info that
-the operating system is correct.
+@item --version
+@cindex @code{--version} command line option
+@cindex version information
+Prints the version information of Info and exits.
-@table @asis
-@item @code{@kbd{M-x} set-screen-height}
-@findex set-screen-height
-@cindex screen, changing the height of
-Read a height value in the echo area and set the height of the
-displayed screen to that value.
+@anchor{--vi-keys}
+@item --vi-keys
+@cindex @code{--vi-keys} command line option
+@cindex vi-like key bindings
+@cindex Less-like key bindings
+This option binds functions to keys differently, to emulate the key
+bindings of @code{vi} and Less. The bindings activated by this option
+are documented in @ref{@t{infokey} format}. (@xref{Custom Key Bindings}
+for a more general way of altering GNU Info's key bindings.)
+
+@item --where
+@itemx --location
+@itemx -w
+@cindex @code{--where} (@code{--location}, @code{-w}) command line option
+@cindex Info manual location
+@cindex Where is an Info manual?
+Show the filename that would be read and exit, instead of actually
+reading it and starting Info.
@end table
-On MS-DOS/MS-Windows, this command actually tries to change the
-dimensions of the visible screen to the value you type in the echo
-area.
+Finally, Info defines many default key bindings and variables.
+@xref{Custom Key Bindings} for information on how to customize these
+settings.
+
+@c FIXME: the feature with lowercasing the file name isn't documented
-Finally, Info provides a convenient way to display footnotes which might
-be associated with the current node that you are viewing:
-@table @asis
-@item @kbd{@key{ESC} C-f} (@code{show-footnotes})
-@kindex ESC C-f
-@findex show-footnotes
-@cindex footnotes, displaying
-Show the footnotes (if any) associated with the current node in
-another window. You can have Info automatically display the footnotes
-associated with a node when the node is selected by setting the
-variable @code{automatic-footnotes}. @xref{Variables,,
-@code{automatic-footnotes}}.
-@end table
@node Variables
- master updated (2a18f1062a -> 4f6f45269e), Gavin D. Smith, 2023/01/10
- [no subject], Gavin D. Smith, 2023/01/10
- [no subject], Gavin D. Smith, 2023/01/10
- [no subject], Gavin D. Smith, 2023/01/10
- [no subject], Gavin D. Smith, 2023/01/10
- [no subject],
Gavin D. Smith <=
- [no subject], Gavin D. Smith, 2023/01/10
- [no subject], Gavin D. Smith, 2023/01/10