diff options
Diffstat (limited to 'Build/source/utils/texinfo/doc/info-stnd.texi')
-rw-r--r-- | Build/source/utils/texinfo/doc/info-stnd.texi | 2203 |
1 files changed, 2203 insertions, 0 deletions
diff --git a/Build/source/utils/texinfo/doc/info-stnd.texi b/Build/source/utils/texinfo/doc/info-stnd.texi new file mode 100644 index 00000000000..1a1df6fb6d8 --- /dev/null +++ b/Build/source/utils/texinfo/doc/info-stnd.texi @@ -0,0 +1,2203 @@ +\input texinfo.tex @c -*-texinfo-*- +@comment $Id: info-stnd.texi,v 1.9 2004/12/14 16:58:15 karl Exp $ +@c We must \input texinfo.tex instead of texinfo, otherwise make +@c distcheck in the Texinfo distribution fails, because the texinfo Info +@c file is made first, and texi2dvi must include . first in the path. +@comment %**start of header +@setfilename info-stnd.info +@include version-stnd.texi +@settitle GNU Info @value{VERSION} +@syncodeindex vr cp +@syncodeindex fn cp +@syncodeindex ky cp +@comment %**end of header + +@copying +This manual is for GNU Info (version @value{VERSION}, @value{UPDATED}), +a program for viewing documents in Info format (usually created from +Texinfo source files). + +Copyright @copyright{} 1992, 1993, 1996, 1997, 1998, 1999, 2001, 2002, +2003, 2004 Free Software Foundation, Inc. + +@quotation +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.1 or +any later version published by the Free Software Foundation; with no +Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' +and with the Back-Cover Texts as in (a) below. A copy of the +license is included in the section entitled ``GNU Free Documentation +License.'' + +(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify +this GNU Manual, like GNU software. Copies published by the Free +Software Foundation raise funds for GNU development.'' +@end quotation +@end copying + +@dircategory Texinfo documentation system +@direntry +* info standalone: (info-stnd). Read Info documents without Emacs. +* infokey: (info-stnd)Invoking infokey. Compile Info customizations. +@end direntry + +@titlepage +@title GNU Info +@subtitle for version @value{VERSION}, @value{UPDATED} +@author Brian J. Fox (bfox@@gnu.org) +@page +@vskip 0pt plus 1filll +@insertcopying +@end titlepage + +@contents + +@ifnottex +@node Top +@top GNU Info + +@insertcopying + +This documentation is different from the documentation for the Info +reader that is part of GNU Emacs. If you do not know how to use Info, +but have a working Info reader, you should read the Emacs documentation +first, as it includes more background information and a thorough tutorial. +@end ifnottex + +@menu +* What is 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. +* Searching Commands:: Commands for searching an Info file. +* Xref Commands:: Commands for selecting cross references. +* 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 categories. +* Variables:: How to change the default behavior of Info. +* Custom Key Bindings:: How to define your own key-to-command bindings. +* Copying This Manual:: The GNU Free Documentation License. +* Index:: Global index containing keystrokes, + command names, variable names, + and general concepts. +@end menu + + +@node What is Info +@chapter What is Info? + +@dfn{Info} is a program which is used to view Info files on an ASCII +terminal. @dfn{Info files} are the result of processing Texinfo files +with the program @code{makeinfo} or with one of the Emacs commands, such +as @code{M-x texinfo-format-buffer}. Texinfo itself is a documentation +system that uses a single source file to produce both on-line +information and printed output. You can typeset and print the files +that you read in Info. + + +@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 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{menu-item}@dots{}] +@end example + +The program accepts the following options: + +@table @code +@anchor{--apropos} +@item --apropos=@var{string} +@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. Note that 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}. + +@cindex directory path +@item --directory @var{directory-path} +@itemx -d @var{directory-path} +Prepend @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. The +list of directories searched by Info is constructed from the value of +the environment variable @code{INFOPATH}; @code{--directory} causes the +named @var{directory-path} to be prepended to that list. 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 you do not +define @code{INFOPATH}, Info uses a default path defined when Info was +built as the initial list of directories. 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}. + +@cindex keystrokes, recording +@cindex remembering user keystrokes +@item --dribble=@var{dribble-file} +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 --file @var{filename} +@itemx -f @var{filename} +@cindex Info file, selecting +Specify a particular Info file to visit. By default, Info visits +the file @code{dir}; if you use this option, Info will start with +@code{(@var{filename})Top} as the first file and node. + +@cindex relative Info file names +@cindex file names, relative +@cindex Info files, relative +If @var{filename} is an absolute file name, or begins with @file{./} or +@file{../}, Info looks for @var{filename} only in the directory of the +specified @var{filename}, and adds the directory of @var{filename} to +the value of @code{INFOPATH}. In contrast, if @var{filename} is in the +form of a relative file name, but without the @file{./} or @file{../} +prefix, Info will only look for it in the directories specified in +@code{INFOPATH}. In other words, Info does @emph{not} treat file names +which lack @file{./} and @file{../} prefix as relative to the current +directory. + +@cindex compressed Info files +@cindex files, compressed +@cindex Info files, compressed +In every directory Info tries, if @var{filename} is not found, Info +looks for it with a number of known extensions of Info files@footnote{ +@file{.info}, @file{-info}, @file{/index}, and @file{.inf}.}. For every +known extension, Info looks for a compressed file, if a regular file +isn't found. Info supports files compressed with @code{gzip}, +@code{bzip2}, @code{compress} and @code{yabba} programs; it calls +@code{gunzip}, @code{bunzip2}, @code{uncompress} and @code{unyabba}, +accordingly, to decompress such files. Compressed Info files are +assumed to have @file{.z}, @file{.gz}, @file{.bz2}, @file{.Z}, or +@file{.Y} extensions, possibly in addition to one of the known Info +files extensions@footnote{The MS-DOS version 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 --help +@itemx -h +Produces a relatively brief description of the available Info options. + +@item --index-search @var{string} +@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 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. + +This command can also be invoked from inside Info; see @ref{Searching +Commands}. + +@item --node @var{nodename} +@itemx -n @var{nodename} +@cindex node, selecting from the command line +Specify a particular node to visit in the initial file that Info +loads. This is especially useful in conjunction with +@code{--file}@footnote{Of course, you can specify both the file and node +in a @code{--node} command; but don't forget to escape the open and +close parentheses and whitespace from the shell as in: @code{info --node +"(emacs)Buffers"}.}. 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. + +@item --output @var{filename} +@itemx -o @var{filename} +@cindex file, outputting to +@cindex outputting to a file +Specify @var{filename} as the name of a file to which to direct output. +Each node that Info visits will be output to @var{filename} instead of +interactively viewed. A value of @code{-} for @var{filename} specifies +the standard output. + +@cindex colors in documents +@cindex ANSI escape sequences in documents +@item --raw-escapes +@itemx --no-raw-escapes +@itemx -R +Do not remove ANSI escape sequences from documents. Some versions of +Groff, the GNU document formatter, produce man pages with ANSI escape +sequences for bold, italics, and underlined characters, and for +colorized text. By default, Info lets those escape sequences pass +through directly to the terminal. If your terminal does not support +these escapes, use @code{--no-raw-escapes} to make Info remove them. + +@cindex replaying recorded keystrokes +@item --restore=@var{dribble-file} +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. + +@anchor{--show-options} +@cindex command-line options, how to find +@cindex invocation description, how to find +@item --show-options +@itemx --usage +@itemx -O +This option causes Info to look for the node that describes how to +invoke the program and its command-line options, and begin the session +by displaying that node. It is provided to make it easier to find the +most important usage information in a manual without the need to wade +through complex menu hierarchies. The effect is similar to the +@code{M-x goto-invocation} command (@pxref{goto-invocation}) from inside +Info. + +@cindex speech synthesizers +@item --speech-friendly +@itemx -b +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 --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. + +@item --version +@cindex version information +Prints the version information of Info and exits. + +@anchor{--vi-keys} +@cindex vi-like key bindings +@cindex Less-like key bindings +@item --vi-keys +This option binds functions to keys differently, to emulate the key +bindings of @code{vi} and Less. The default key bindings are generally +modeled after Emacs. +(@xref{Custom Key Bindings}, +for a more general way of altering GNU Info's key bindings.) + +@cindex Info manual location +@cindex Where is an Info manual? +@item --where +@itemx --location +@itemx -w +Show the filename that would be read and exit, instead of actually +reading it and starting Info. + +@item @var{menu-item} +@cindex menu, following +@anchor{command-line menu items} +Info treats its remaining arguments as the names of menu items. The +first argument is a menu item in the initial node visited (generally +@code{dir}), the second argument is a menu item in the first argument's +node, etc. You can easily 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 +@end example + +@noindent +first selects the menu item @samp{Emacs} in the node @samp{(dir)Top}, +and then selects the menu item @samp{Buffers} in the node +@samp{(emacs)Top}. +@end table + +To avoid searching the @file{dir} files and just show some arbitrary +file, use @samp{-f} and the filename, as in @samp{info -f ./foo.info}. + +The index search and the search for the node which describes program +invocation and command-line options begins @emph{after} processing all +the command-line menu items. Therefore, the Info file searched for the +index or the invocation node is the file where Info finds itself after +following all the menu items given on the command line. This is so +@samp{info emacs --show-options} does what you'd expect. + +@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 + +Many people find that reading screens of text page by page is made +easier when one is able to indicate particular pieces of text with +some kind of pointing device. Since this is the case, GNU Info (both +the Emacs and standalone versions) have several commands which allow +you to move the cursor about the screen. The notation used in this +manual to describe keystrokes is identical to the notation used within +the Emacs manual, and the GNU Readline manual. @xref{User Input,,, +emacs, the GNU Emacs Manual}, if you are unfamiliar with the +notation.@footnote{Here's a short summary. @kbd{C-@var{x}} means +press the @kbd{CTRL} key and the key @var{x}. @kbd{M-@var{x}} means +press the @kbd{META} key and the key @var{x}. On many terminals th +@kbd{META} key is known as the @kbd{ALT} key. @kbd{SPC} is the space +bar. The other keys are usually called by the names imprinted on +them.} + +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 @code{M-x}@footnote{@code{M-x} is also a command; it +invokes @code{execute-extended-command}. @xref{M-x, , Executing an +extended command, emacs, the GNU Emacs Manual}, for more detailed +information.} command name (displayed in parentheses), and a short +description of what the command does. 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 -4 +given to the @code{next-line} command would cause the cursor to move +@emph{up} 4 lines. + +@table @asis +@item @key{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 @key{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 @key{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 @key{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 @key{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. + +@item @key{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. + +@item @key{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 @key{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. + +@item @key{M-<} (@code{beginning-of-node}) +@itemx @key{C-@key{Home}} (on DOS/Windows only) +@itemx @key{b} +@itemx @key{M-b}, vi-like operation +@kindex b, in Info windows +@kindex M-< +@kindex C-Home +@kindex M-b, vi-like operation +@findex beginning-of-node +Move the cursor to the start of the current node. + +@item @key{M->} (@code{end-of-node}) +@itemx @key{C-@key{End}} (on DOS/Windows only) +@itemx @key{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 @key{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 + + +@node Scrolling Commands +@chapter Moving Text Within a Window +@cindex scrolling + +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. + +Scrolling commands are bound differently when @samp{--vi-keys} operation +is in effect (@pxref{--vi-keys}). These key bindings are designated +with ``vi-like operation''. + +@table @asis +@item @key{SPC} (@code{scroll-forward}) +@kindex SPC, in Info windows +@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}. + +The default scroll size is one screen-full, but it can be changed by +invoking the (@code{scroll-forward-page-only-set-window}) command, +@samp{z} under @samp{--vi-keys}, with a numeric argument. + +@item @key{NEXT} (an arrow key) (@code{scroll-forward-page-only}) +@itemx @key{C-v} +@itemx @key{C-f}, vi-like operation +@itemx @key{f}, vi-like operation +@itemx @key{M-SPC}, vi-like operation +@kindex NEXT +@kindex C-v +@kindex C-f, vi-like operation +@kindex f, vi-like operation +@kindex M-SPC, vi-like operation +@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. + +@kindex PageDown +The @key{NEXT} key is known as the @key{PageDown} key on some +keyboards. + +@item @key{z} (@code{scroll-forward-page-only-set-window}, vi-like operation) +@kindex z, vi-like operation +@findex scroll-forward-page-only-set-window +Scroll forward, like with @key{NEXT}, 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. + +@item @key{DEL} (@code{scroll-backward}) +@kindex DEL, in Info windows +@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, +@samp{w} under @samp{--vi-keys}, with a numeric argument. + +@itemx @key{PREVIOUS} (arrow key) (@code{scroll-backward-page-only}) +@itemx @key{PRIOR} (arrow key) +@itemx @key{M-v} +@itemx @key{b}, vi-like operation +@itemx @key{C-b}, vi-like operation +@kindex PREVIOUS +@kindex M-v +@kindex b, vi-like operation +@kindex C-b, vi-like operation +@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, @samp{w} under +@samp{--vi-keys}, with a numeric argument. + +@item @key{w} (@code{scroll-backward-page-only-set-window}, vi-like operation) +@kindex w, vi-like operation +@findex scroll-backward-page-only-set-window +Scroll backward, like with @key{PREVIOUS}, but if a numeric argument is +specified, it becomes the default scroll size for subsequent +@code{scroll-forward} and @code{scroll-backward} commands. + +@item @key{C-n} (@code{down-line}, vi-like operation) +@itemx @key{C-e}, vi-like operation +@itemx @key{RET}, vi-like operation +@itemx @key{LFD}, vi-like operation +@itemx @key{DOWN}, vi-like operation +@kindex C-n, vi-like operation +@kindex C-e, vi-like operation +@kindex RET, vi-like operation +@kindex LFD, vi-like operation +@kindex DOWN, vi-like operation +@findex down-line +Scroll forward by one line. With a numeric argument, scroll forward +that many lines. + +@item @key{C-p} (@code{up-line}, vi-like operation) +@itemx @key{UP}, vi-like operation +@itemx @key{y}, vi-like operation +@itemx @key{k}, vi-like operation +@itemx @key{C-k}, vi-like operation +@itemx @key{C-y}, vi-like operation +@kindex C-p, vi-like operation +@kindex UP, vi-like operation +@kindex y, vi-like operation +@kindex k, vi-like operation +@kindex C-k, vi-like operation +@kindex C-y, vi-like operation +@findex up-line +Scroll backward one line. With a numeric argument, scroll backward that +many lines. + +@item @key{d} (@code{scroll-half-screen-down}, vi-like operation) +@itemx @key{C-d}, vi-like operation +@kindex d, vi-like operation +@kindex C-d, vi-like operation +@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 @samp{d} and @samp{u} +commands. + +@item @key{u} (@code{scroll-half-screen-up}, vi-like operation) +@itemx @key{C-u}, vi-like operation +@kindex u, vi-like operation +@kindex C-u, vi-like operation +@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 @samp{u} and @samp{d} +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}. @xref{Variables, +@code{scroll-behavior}}, for more information. + +The @code{scroll-forward-page-only} and @code{scroll-backward-page-only} +commands never scroll beyond the current node. + +@kindex PageUp +The @key{PREVIOUS} key is the @key{PageUp} key on many keyboards. Emacs +refers to it by the name @key{PRIOR}. When you use @key{PRIOR} or +@key{PageUp} to scroll, Info never scrolls beyond the beginning of the +current node. + +@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. + +@table @asis +@item @key{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{C-x @key{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 @code{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 modeline displays the +@samp{$} character near its left edge. +@end table + + +@node Node Commands +@chapter Selecting a Node +@cindex nodes, selection of + +This section details the numerous Info commands which select a new node +to view in the current window. + +The most basic node commands are @samp{n}, @samp{p}, @samp{u}, and +@samp{l}. Note that the commands to select nodes are mapped differently +when @samp{--vi-keys} is in effect; these keybindings are designated +below as ``vi-like operation''. + +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: + +@table @asis +@item @key{n} (@code{next-node}) +@itemx @kbd{C-@key{NEXT}} (on DOS/Windows only) +@itemx @kbd{C-x @key{n}}, vi-like operation +@kindex n +@kindex C-NEXT +@kindex C-x n, vi-like operation +@findex next-node +Select the `Next' node. + +@kindex C-PgDn +The @key{NEXT} key is known as the @key{PgDn} key on some +keyboards. + +@item @key{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. + +@kindex C-PgUp +The @key{PREVIOUS} key is known as the @key{PgUp} key on some +keyboards. + +@item @key{u} (@code{up-node}) +@itemx @kbd{C-@key{UP}} (an arrow key on DOS/Windows only) +@itemx @kbd{C-x @key{u}}, vi-like operation +@kindex u +@kindex C-UP +@kindex C-x u, vi-like operation +@findex up-node +Select the `Up' node. +@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. + +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 @key{l} (@code{history-node}) +@itemx @key{C-@key{CENTER}} (on DOS/Windows only) +@itemx @key{'}, vi-like operation +@kindex l +@kindex C-CENTER +@kindex ', vi-like operation +@findex history-node +Pop the most recently selected node in this window from the node +history. +@end table + +Two additional commands make it easy to select the most commonly +selected nodes; they are @samp{t} and @samp{d}. + +@table @asis +@item @key{t} (@code{top-node}) +@itemx @key{M-t}, vi-like operation +@kindex t +@kindex M-t, vi-like operation +@findex top-node +Select the node @samp{Top} in the current Info file. + +@item @key{d} (@code{dir-node}) +@itemx @key{M-d}, vi-like operation +@kindex d +@kindex M-d, vi-like operation +@findex dir-node +Select the directory node (i.e., the node @samp{(dir)}). +@end table + +Here are some other commands which immediately result in the selection +of a different node in the current window: + +@table @asis +@item @key{<} (@code{first-node}) +@itemx @key{g}, vi-like operation +@kindex < +@kindex g, vi-like operation +@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 @key{>} (@code{last-node}) +@itemx @key{G}, vi-like operation +@kindex > +@kindex G, vi-like operation +@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 @key{]} (@code{global-next-node}) +@kindex ] +@findex global-next-node +Move forward or down through node structure. If the node that you are +currently viewing has a @samp{Next} pointer, that node is selected. +Otherwise, if this node has a menu, the first menu item is selected. If +there is no @samp{Next} and no menu, the same process is tried with the +@samp{Up} node of this node. + +@item @key{[} (@code{global-prev-node}) +@kindex [ +@findex global-prev-node +Move backward or up through 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}; @xref{Variables, @code{scroll-behavior}}, for +more information. + +@table @asis +@anchor{goto-node} +@item @key{g} (@code{goto-node}) +@itemx @kbd{C-x @key{g}}, vi-like operation +@kindex g +@kindex C-x g, vi-like operation +@findex goto-node +Read the name of a node and select it. 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; if the desired node resides in some other file, +you must type the node exactly as it appears in that Info file, and you +must include the Info file of the other file. For example, + +@example +@code{g(emacs)Buffers} +@end example + +finds the node @samp{Buffers} in the Info file @file{emacs}. + +@anchor{goto-invocation} +@item @key{O} (@code{goto-invocation} +@itemx @key{I} +@kindex O +@kindex I +@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. + +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{I}. 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{I} +doesn't display the right node, go to the @samp{(dir)} node (using the +@samp{d} command) and invoke @samp{I} from there. + +@item @key{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, + +@example + @kbd{G Texinfo,Overview,Reporting Bugs @key{RET}} +@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.) + +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 @kbd{C-x @key{k}} (@code{kill-node}) +@kindex C-x k +@findex kill-node +Kill a node. The node name is prompted for in the echo area, with a +default of the current node. @dfn{Killing} a node means that Info tries +hard to forget about it, removing it from the list of history nodes kept +for the window where that node is found. Another node is selected in +the window which contained the killed node. + +@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 @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 @key{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. +@end table + + +@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, search through the indices of an Info file, or find +areas within an Info file which discuss a particular topic. + +@table @asis +@item @key{s} (@code{search}) +@itemx @key{/} +@kindex s +@kindex / +@findex search +Read a string in the echo area and search for it. 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 @key{?} (@code{search-backward}, vi-like operation) +@kindex ?, vi-like operation +@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 @key{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-x @key{n}} (@code{search-next}) +@itemx @key{n}, vi-like operation +@kindex C-x n +@kindex n, vi-like operation +@findex search-next +@cindex repeated search +Search for the same string used in the last search command, in the same +direction, and with the same case-sensitivity option. With a numeric +argument of @var{N}, search for @var{N}th next occurrence. + +@item @kbd{C-x @key{N}} (@code{search-previous}) +@itemx @key{N}, vi-like operation +@kindex C-x N +@kindex n, vi-like operation +@findex search-previous +Search for the same string used in the last search command, and with the +same case-sensitivity option, but in the reverse direction. With a +numeric argument of @var{N}, search for @var{N}th previous occurrence. + +@item @key{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 @key{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. + +@item @key{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 @key{,} (@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{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 + +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 within @samp{[} and @samp{]}; pressing @key{RET} instead of +typing a new string will use the default search string. Under +@samp{--vi-keys} (@pxref{--vi-keys}), using the @samp{n} or @samp{N} +commands is a faster way of searching for the same string. + +@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. + +@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}. + +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}. + + +@node Xref Commands +@chapter Selecting Cross References + +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. + +@menu +* Parts of an Xref:: What a cross reference is made of. +* Selecting Xrefs:: Commands for selecting menu or note items. +@end menu + +@node Parts of an Xref +@section Parts of an Xref + +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. + +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 +* Foo Label: Foo Target. More information about Foo. +@end example + +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. + +A shorthand way of specifying references allows two adjacent colons to +stand for a target name which is the same as the label name: + +@example +* Foo Commands:: Commands pertaining to Foo. +@end example + +In the above example, the name of the target is the same as the name of +the label, in this case @code{Foo Commands}. + +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. + +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 Selecting Xrefs +@section Selecting Xrefs + +The following table lists the Info commands which operate on menu items. + +@table @asis +@item @key{1} (@code{menu-digit}) +@itemx @key{2} @dots{} @key{9} +@itemx @key{M-1}, vi-like operation +@itemx @key{M-2} @dots{} @key{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 @key{M-0}. + +@item @key{0} (@code{last-menu-item}) +@itemx @key{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 @key{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-x find-menu} +@findex find-menu +Move the cursor to the start of this node's menu. +@end table + +This table lists the Info commands which operate on cross references. + +@table @asis +@item @key{f} (@code{xref-item}) +@itemx @key{r} +@item @key{M-f}, vi-like operation +@itemx @kbd{C-x @key{r}}, vi-like operation +@kindex f +@kindex r +@kindex M-f, vi-like operation +@kindex C-x r, vi-like operation +@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 @key{M-TAB} (@code{move-to-prev-xref}) +@itemx @key{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 +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}. + +@item @key{RET} (@code{select-reference-this-line}) +@itemx @key{M-g}, vi-like operation +@kindex RET, in Info windows +@kindex M-g, vi-like operation +@findex select-reference-this-line +Select the menu item or note reference appearing on this line. +@end table + + +@node Window Commands +@chapter Manipulating Multiple Windows +@cindex windows, manipulating + +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. + +GNU Info supports multiple windows appearing in a single screen; each +window is separated from the next by its modeline. 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. + +@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 + +@node The Mode Line +@section The Mode Line + +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. It can +also tell you if the indirect tags table for this Info file needs to be +updated, and whether or not the Info file was compressed when stored on +disk. + +Here is a sample mode line for a window containing an uncompressed file +named @file{dir}, showing the node @samp{Top}. + +@example +@group +-----Info: (dir)Top, 40 lines --Top------------------------------------- + ^^ ^ ^^^ ^^ + (file)Node #lines where +@end group +@end example + +When a node comes from a file which is compressed on disk, this is +indicated in the mode line with two small @samp{z}'s. In addition, if +the Info file containing the node has been split into subfiles, the name +of the subfile containing the node appears in the modeline as well: + +@example +--zz-Info: (emacs)Top, 291 lines --Top-- Subfile: emacs-1.Z------------- +@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: + +@example +--$--Info: (texinfo)Top, 480 lines --Top-- Subfile: texinfo-1----------- +@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 Basic Windows +@section Window Commands + +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{C-x @key{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{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 @kbd{C-x @key{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, , automatic-tiling}). + +@item @kbd{C-x @key{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. + +@item @kbd{C-x @key{1}} (@code{keep-one-window}) +@kindex C-x 1 +@findex keep-one-window +Delete all of the windows excepting the current one. + +@item @kbd{ESC @key{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. + +@item @kbd{C-x @key{^}} (@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 @kbd{C-x @key{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 + +@node The Echo Area +@section The Echo Area +@cindex echo area + +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: + +@table @asis +@item @key{C-f} (@code{echo-area-forward}) +@itemx @key{RIGHT} (an arrow key) +@itemx @key{M-h}, vi-like operation +@kindex C-f, in the echo area +@kindex RIGHT, in the echo area +@kindex M-h, in the echo area, vi-like operation +@findex echo-area-forward +Move forward a character. + +@item @key{C-b} (@code{echo-area-backward}) +@itemx @key{LEFT} (an arrow key) +@itemx @key{M-l}, vi-like operation +@kindex LEFT, in the echo area +@kindex C-b, in the echo area +@kindex M-l, in the echo area, vi-like operation +@findex echo-area-backward +Move backward a character. + +@item @key{C-a} (@code{echo-area-beg-of-line}) +@itemx @key{M-0}, vi-like operation +@kindex C-a, in the echo area +@kindex M-0, in the echo area, vi-like operation +@findex echo-area-beg-of-line +Move to the start of the input line. + +@item @key{C-e} (@code{echo-area-end-of-line}) +@itemx @key{M-$}, vi-like operation +@kindex C-e, in the echo area +@kindex M-$, vi-like operation +@findex echo-area-end-of-line +Move to the end of the input line. + +@item @key{M-f} (@code{echo-area-forward-word}) +@itemx @key{C-@key{RIGHT}} (DOS/Windows only) +@itemx @key{M-w}, vi-like operation +@kindex M-f, in the echo area +@kindex M-w, in the echo area, vi-like operation +@findex echo-area-forward-word +Move forward a word. + +@kindex C-RIGHT, in the echo area +On DOS/Windows, @kbd{C-@key{RIGHT}} moves forward by words. + +@item @key{M-b} (@code{echo-area-backward-word}) +@itemx @key{C-@key{LEFT}} (DOS/Windows only) +@kindex M-b, in the echo area +@findex echo-area-backward-word +Move backward a word. + +@kindex C-LEFT, in the echo area +On DOS/Windows, @kbd{C-@key{LEFT}} moves backward by words. + +@item @key{C-d} (@code{echo-area-delete}) +@itemx @key{M-x}, vi-like operation +@kindex C-d, in the echo area +@kindex M-x, in the echo area, vi-like operation +@findex echo-area-delete +Delete the character under the cursor. + +@item @key{DEL} (@code{echo-area-rubout}) +@kindex DEL, in the echo area +@findex echo-area-rubout +Delete the character behind the cursor. + +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}. + +@item @key{C-g} (@code{echo-area-abort}) +@itemx @key{C-u}, vi-like operation +@kindex C-g, in the echo area +@kindex C-u, in the echo area, vi-like operation +@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. + +@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 @key{C-q} (@code{echo-area-quoted-insert}) +@itemx @key{C-v}, vi-like operation +@kindex C-q, in the echo area +@kindex C-v, in the echo area, vi-like operation +@findex echo-area-quoted-insert +Insert the next character verbatim. This is how you can insert control +characters into a search string, for example, or the @samp{?} character +when Info prompts with completion. + +@item @var{printing character} (@code{echo-area-insert}) +@kindex printing characters, in the echo area +@findex echo-area-insert +Insert the character. Characters that have their 8th bit set, and not +bound to @samp{M-} commands, are also inserted verbatim; this is useful +for terminals which support Latin scripts. + +@item @key{M-TAB} (@code{echo-area-tab-insert}) +@itemx @key{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 TAB character. + +@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}. + +@item @key{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. +@end table + +The next group of commands deal with @dfn{killing}, and @dfn{yanking} +text@footnote{ +Some people are used to calling these operations @dfn{cut} and +@dfn{paste}, respectively.}. For an in-depth discussion of killing and +yanking, see @ref{Killing, , Killing and Deleting, emacs, the GNU Emacs +Manual}. + +@table @asis +@item @key{M-d} (@code{echo-area-kill-word}) +@itemx @key{M-X}, vi-like operation +@kindex M-d, in the echo area +@kindex M-X, in the echo area, vi-like operation +@findex echo-area-kill-word +Kill the word following the cursor. + +@item @key{M-DEL} (@code{echo-area-backward-kill-word}) +@itemx @key{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 @code{Backspace} key is used instead of +@code{DEL}, so @code{M-@key{Backspace}} has the same effect as +@code{M-@key{DEL}}. + +@item @key{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. + +@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. + +@item @key{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. + +@item @key{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 + +@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}. + +The following commands are available when completing in the echo area: + +@table @asis +@item @key{TAB} (@code{echo-area-complete}) +@itemx @key{SPC} +@kindex TAB, in the echo area +@kindex SPC, in the echo area +@findex echo-area-complete +Insert as much of a completion as is possible. + +@item @key{?} (@code{echo-area-possible-completions}) +@kindex ?, in the echo area +@findex echo-area-possible-completions +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 +bar +foliate +food +forget +@end group +@end example + +@noindent +and you have typed an @samp{f}, followed by @samp{?}, Info will pop up a +window showing a node called @samp{*Completions*} which lists the +possible completions like this: + +@example +@group +3 completions: +foliate food +forget +@end group +@end example + +@noindent +i.e., all of the choices which begin with @samp{f}. Pressing @key{SPC} +or @key{TAB} 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, 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}. + +@item @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 + + +@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{M-x print-node} +@findex print-node +@cindex INFO_PRINT_COMMAND, environment variable +Pipe the contents of the current node through the command in the +environment variable @code{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}). + +@cindex printing nodes to the local printer +@cindex local printer device +The value of @code{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 + + +@node Miscellaneous Commands +@chapter Miscellaneous Commands + +GNU Info contains several commands which self-document GNU Info: + +@table @asis +@item @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{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{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 @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 @key{C-h} (@code{get-help-window}) +@itemx @key{?} +@itemx @key{F1} (on DOS/Windows only) +@itemx h, vi-like operation +@kindex C-h +@kindex ?, in Info windows +@kindex F1 +@kindex h, vi-like operation +@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 @key{h} (@code{get-info-help-node}) +@itemx @key{M-h}, vi-like operation +@kindex h +@kindex M-h, vi-like operation +@findex get-info-help-node +Try hard to visit the node @code{(info)Help}. The Info file +@file{info.texi} distributed with GNU Info contains this node. Of +course, the file must first be processed with @code{makeinfo}, and then +placed into the location of your Info directory. +@end table + +Here are the commands for creating a numeric argument: + +@table @asis +@item @key{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 @key{M-1} (@code{add-digit-to-numeric-arg}) +@itemx @key{1}, vi-like operation +@itemx @key{M-2} @dots{} @key{M-9} +@itemx @key{2} @dots{} @key{9}, vi-like operation +@itemx @key{M-0} +@itemx @key{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 @key{M--} (@code{add-digit-to-numeric-arg} +@itemx @key{-} +@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 -1. If you continue to type digit or +Meta-digit keys after @kbd{-}, the result is a negative number produced +by those digits. + +@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 + +@samp{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. + +@table @asis +@item @key{C-g} (@code{abort-key}) +@itemx @key{C-u}, vi-like operation +@cindex cancelling typeahead +@cindex cancelling the current operation +@kindex C-g, in Info windows +@kindex C-u cancels typeahead, vi-like operation +@findex abort-key +Cancel current operation. +@end table + +The @samp{q} command of Info simply quits running Info. Under +@samp{--vi-keys} (@pxref{--vi-keys}), you can also exit with @samp{:q} +or @samp{ZZ}. + +@table @asis +@item @key{q} (@code{quit}) +@itemx @kbd{C-x C-c} +@itemx @kbd{:q}, vi-like operation +@itemx @kbd{ZZ}, vi-like operation +@cindex quitting +@kindex q +@kindex C-x C-c +@kindex ZZ, vi-like operation +@findex quit +Exit GNU Info. +@end table + +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. + +@table @asis +@item @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 + +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 provides a convenient way to display footnotes which might +be associated with the current node that you are viewing: + +@table @asis +@item @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 +@chapter Manipulating Variables + +GNU Info contains several @dfn{variables} whose values are looked at by +various Info commands. You can change the values of these variables, +and thus change the behavior of Info to more closely match your +environment and Info file reading manner. + +There are two ways to set the value of a variable: interactively, using +the @code{set-variable} command described below, or in the @code{#var} +section of the @code{.infokey} file. @xref{Custom Key Bindings}. + +@table @asis +@item @kbd{M-x set-variable} +@cindex variables, setting +@findex set-variable +Read the name of a variable, and the value for it, in the echo area and +then set the variable to that value. Completion is available when +reading the variable name (@pxref{The Echo Area, completion}); often, +completion is available when reading the value to give to the variable, +but that depends on the variable itself. If a variable does @emph{not} +supply multiple choices to complete over, it expects a numeric value. + +@item @kbd{M-x describe-variable} +@cindex variables, describing +@findex describe-variable +Read the name of a variable in the echo area and then display a brief +description of what the variable affects. +@end table + +Here is a list of the variables that you can set in Info. + +@table @code +@item automatic-footnotes +@vindex automatic-footnotes +When set to @code{On}, footnotes appear and disappear automatically; +else, they appear at the bottom of the node text. This variable is +@code{Off} by default. When a node is selected, a window containing +the footnotes which appear in that node is created, and the footnotes +are displayed within the new window. The window that Info creates to +contain the footnotes is called @samp{*Footnotes*}. If a node is +selected which contains no footnotes, and a @samp{*Footnotes*} window +is on the screen, the @samp{*Footnotes*} window is deleted. Footnote +windows created in this fashion are not automatically tiled so that +they can use as little of the display as is possible. + +@item automatic-tiling +@vindex automatic-tiling +When set to @code{On}, creating or deleting a window resizes other +windows. This variable is @code{Off} by default. Normally, typing +@samp{C-x 2} divides the current window into two equal parts. When +@code{automatic-tiling} is set to @code{On}, all of the windows are +resized automatically, keeping an equal number of lines visible in each +window. There are exceptions to the automatic tiling; specifically, the +windows @samp{*Completions*} and @samp{*Footnotes*} are @emph{not} +resized through automatic tiling; they remain their original size. + +@item errors-ring-bell +@vindex errors-ring-bell +When set to @code{On}, errors cause the bell to ring. The default +setting of this variable is @code{On}. + +@item gc-compressed-files +@vindex gc-compressed-files +When set to @code{On}, Info garbage collects files which had to be +uncompressed. The default value of this variable is @code{Off}. +Whenever a node is visited in Info, the Info file containing that node +is read into core, and Info reads information about the tags and nodes +contained in that file. Once the tags information is read by Info, it +is never forgotten. However, the actual text of the nodes does not need +to remain in core unless a particular Info window needs it. For +non-compressed files, the text of the nodes does not remain in core when +it is no longer in use. But de-compressing a file can be a time +consuming operation, and so Info tries hard not to do it twice. +@code{gc-compressed-files} tells Info it is okay to garbage collect the +text of the nodes of a file which was compressed on disk. + +@item ISO-Latin +@cindex ISO Latin characters +@vindex ISO-Latin +When set to @code{On}, Info accepts and displays ISO Latin characters. +By default, Info assumes an ASCII character set. @code{ISO-Latin} tells +Info that it is running in an environment where the European standard +character set is in use, and allows you to input such characters to +Info, as well as display them. + +@item scroll-behavior +@vindex scroll-behavior +Control what happens when forward scrolling is requested at the end of +a node, or when backward scrolling is requested at the beginning of a +node. The default value for this variable is @code{Continuous}. There +are three possible values for this variable: + +@table @code +@item Continuous +Try to get the first item in this node's menu, or failing that, the +@samp{Next} node, or failing that, the @samp{Next} of the @samp{Up}. +This behavior is identical to using the @samp{]} +(@code{global-next-node}) and @samp{[} (@code{global-prev-node}) +commands. + +@item Next Only +Only try to get the @samp{Next} node. + +@item Page Only +Simply give up, changing nothing. If @code{scroll-behavior} is +@code{Page Only}, no scrolling command can change the node that is being +viewed. +@end table + +@item scroll-step +@vindex scroll-step +The number of lines to scroll when the cursor moves out of the window. +Scrolling happens automatically if the cursor has moved out of the +visible portion of the node text when it is time to display. Usually +the scrolling is done so as to put the cursor on the center line of the +current window. However, if the variable @code{scroll-step} has a +nonzero value, Info attempts to scroll the node text by that many lines; +if that is enough to bring the cursor back into the window, that is what +is done. The default value of this variable is 0, thus placing the +cursor (and the text it is attached to) in the center of the window. +Setting this variable to 1 causes a kind of ``smooth scrolling'' which +some people prefer. + +@item show-index-match +@vindex show-index-match +When set to @code{On}, the portion of the matched search string is +highlighted in the message which explains where the matched search +string was found. The default value of this variable is @code{On}. +When Info displays the location where an index match was found, +(@pxref{Searching Commands, , @code{next-index-match}}), the portion of the +string that you had typed is highlighted by displaying it in the inverse +case from its surrounding characters. + +@item visible-bell +@vindex visible-bell +When set to @code{On}, GNU Info attempts to flash the screen instead of +ringing the bell. This variable is @code{Off} by default. Of course, +Info can only flash the screen if the terminal allows it; in the case +that the terminal does not allow it, the setting of this variable has no +effect. However, you can make Info perform quietly by setting the +@code{errors-ring-bell} variable to @code{Off}. + +@end table + + +@node Custom Key Bindings +@chapter Customizing Key Bindings and Variables + +@cindex default key bindings, overriding +@cindex overriding default key bindings +@cindex customizing key bindings +@cindex key bindings, customizing +@cindex infokey +@cindex .info +@cindex .infokey +@cindex _info file (MS-DOS) + +For those whose editor/pager of choice is not Emacs and who are not +entirely satisfied with the --vi-keys option (@pxref{--vi-keys}), GNU +Info provides a way to define different key-to-command bindings and +variable settings from the defaults described in this document. + +On startup, GNU Info looks for a configuration file in the invoker's +HOME directory called @file{.info}@footnote{Due to the limitations of +DOS filesystems, the MS-DOS version of Info looks for a file +@file{_info} instead. If the @env{HOME} variable is not defined, Info +additionally looks in the current directory.}. If it is present, and +appears to contain Info configuration data, and was created with the +current version of the @code{infokey} command, then Info adopts the +key bindings and variable settings contained therein. + +The @file{.info} file contains compact, non-textual data for reasons of +efficiency and because its design was lifted wholesale from the GNU Less +program, which also does it that way. It must be created by compiling a +textual source file using the @code{infokey} command. + +@menu +* Invoking infokey:: +* infokey source format:: +@end menu + + +@node Invoking infokey +@section Invoking @command{infokey} + +@cindex invoking infokey +@cindex infokey, invoking +@cindex _infokey file (MS-DOS) + +@command{infokey} compiles a source file +(@file{$HOME/.infokey}@footnote{This file is named @file{_infokey} in +the MS-DOS version, and is looked for in the current directory if +@env{HOME} is undefined.} by default) containing Info customizations +into a binary format (@file{$HOME/.info} by default). GNU Info reads +the binary file at startup to override the default key bindings and +variable definitions. Synopsis: + +@example +infokey [@var{option}@dots{}] [@var{input-file}] +@end example + +Besides the standard @option{--help} and @option{--version}, the only +option is @option{--output @var{file}}. This tells @command{infokey} to +write the binary data to @var{file} instead of @file{$HOME/.info}. + + +@node infokey source format +@section @command{infokey} source format + +@cindex infokey source format +@cindex .infokey source format +@cindex format of .infokey source + +The format of the source file read by @command{infokey} is most easily +illustrated by example. For instance, here is a sample @file{.infokey} +source file suitable for aficionados of @command{vi} or @command{less}: + +@example +#info +j next-line +k prev-line +l forward-char +h backward-char +\kd next-line +\ku prev-line +\kr forward-char +\kl backward-char +\ scroll-forward +\kD scroll-forward-page-only +b scroll-backward +\kU scroll-backward-page-only +g beginning-of-node +\kh beginning-of-node +G end-of-node +\ke end-of-node +\t select-reference-this-line +- history-node +n next-node +p prev-node +u up-node +t top-node +d dir-node +#var +scroll-step=1 +@end example + +The source file consists of one or more @dfn{sections}. +Each section starts with a line that identifies the type of section. +Possible sections are: + +@table @code +@item #info +Key bindings for Info windows. +The start of this section is indicated by a line containing just +@code{#info} by itself. If this is the first section in the source +file, the @code{#info} line can be omitted. The rest of this section +consists of lines of the form: + +@example +@var{string} whitespace @var{action} [ whitespace [ # comment ] ] newline +@end example + +Whitespace is any sequence of one or more spaces and/or tabs. Comment +is any sequence of any characters, excluding newline. @var{string} is +the key sequence which invokes the action. @var{action} is the name of +an Info command. The characters in @var{string} are interpreted +literally or prefixed by a caret (@code{^}) to indicate a control +character. A backslash followed by certain characters specifies input +keystrokes as follows: + +@table @code +@item \b +Backspace +@item \e +Escape (ESC) +@item \n +Newline +@item \r +Return +@item \t +Tab +@item \ku +Up arrow +@item \kd +Down arrow +@item \kl +Left arrow +@item \kr +Right arrow +@item \kU +Page Up +@item \kD +Page Down +@item \kh +HOME +@item \ke +END +@item \kx +Delete (DEL) +@item \m@var{x} +Meta-@var{x} where @var{x} is any character as described above. +@end table + +Backslash followed by any other character indicates that character is to +be taken literally. Characters which must be preceded by a backslash +include caret, space, tab, and backslash itself. + +@item #echo-area +Key bindings for the echo area. +The start of this section is indicated by a line containing just +@code{#echo-area} by itself. The rest of this section has a syntax +identical to that for the key definitions for the Info area, described +above. + +@item #var +Variable initializations. +The start of this section is indicated by a line containing just +@code{#var} by itself. Following this line is a list of variable +assignments, one per line. Each line consists of a variable name +(@xref{Variables},) followed by @code{=} followed by a value. +There may be no white space between the variable name and the @code{=}, +and all characters following the @code{=}, including white space, +are included in the value. +@end table + +Blank lines and lines starting with @code{#} are ignored, except for +the special section header lines. + +Key bindings defined in the @file{.info} file take precedence over GNU +Info's default key bindings, whether or not @samp{--vi-keys} is used. A +default key binding may be disabled by overriding it in the @file{.info} +file with the action @code{invalid}. In addition, @emph{all} default +key bindings can be disabled by adding this line @emph{anywhere} in the +relevant section: + +@example +#stop +@end example + +This will cause GNU Info to ignore all the default key commands for that +section. + +Beware: @code{#stop} can be dangerous. Since it disables all default +key bindings, you must supply enough new key bindings to enable all +necessary actions. Failure to bind any key to the @code{quit} command, +for example, can lead to frustration. + +The order in which key bindings are defined in the @file{.info} file is +not important, except that the command summary produced by the +@code{get-help-window} command only displays the @emph{first} key that +is bound to each command. + + +@c the following is incomplete +@ignore +@c node Info for Sys Admins +@c chapter Info for System Administrators + +This text describes some common ways of setting up an Info hierarchy +from scratch, and details the various options that are available when +installing Info. This text is designed for the person who is installing +GNU Info on the system; although users may find the information present +in this section interesting, none of it is vital to understanding how to +use GNU Info. + +@menu +* Setting the INFOPATH:: Where are my Info files kept? +* Editing the DIR node:: What goes in `DIR', and why? +* Storing Info files:: Alternate formats allow flexibility in setups. +* Using `localdir':: Building DIR on the fly. +* Example setups:: Some common ways to organize Info files. +@end menu + +@c node Setting the INFOPATH +@c section Setting the INFOPATH + +Where are my Info files kept? + +@c node Editing the DIR node +@c section Editing the DIR node + +What goes in `DIR', and why? + +@c node Storing Info files +@c section Storing Info files + +Alternate formats allow flexibility in setups. + +@c node Using `localdir' +@c section Using `localdir' + +Building DIR on the fly. + +@c node Example setups +@c section Example setups + +Some common ways to organize Info files. +@end ignore + + +@node Copying This Manual +@appendix Copying This Manual + +@menu +* GNU Free Documentation License:: License for copying this manual. +@end menu + +@include fdl.texi + + +@node Index +@appendix Index + +@printindex cp + +@bye |