1146515Sru\input texinfo.tex    @c -*-texinfo-*-
2146515Sru@comment $Id: info-stnd.texi,v 1.9 2004/12/14 16:58:15 karl Exp $
3146515Sru@c We must \input texinfo.tex instead of texinfo, otherwise make
4146515Sru@c distcheck in the Texinfo distribution fails, because the texinfo Info
5146515Sru@c file is made first, and texi2dvi must include . first in the path.
642660Smarkm@comment %**start of header
742660Smarkm@setfilename info-stnd.info
8100513Sru@include version-stnd.texi
9100513Sru@settitle GNU Info @value{VERSION}
10100513Sru@syncodeindex vr cp
11100513Sru@syncodeindex fn cp
12100513Sru@syncodeindex ky cp
1342660Smarkm@comment %**end of header
1442660Smarkm
15100513Sru@copying
16100513SruThis manual is for GNU Info (version @value{VERSION}, @value{UPDATED}),
17100513Srua program for viewing documents in Info format (usually created from
18100513SruTexinfo source files).
1956160Sru
20146515SruCopyright @copyright{} 1992, 1993, 1996, 1997, 1998, 1999, 2001, 2002,
21146515Sru2003, 2004 Free Software Foundation, Inc.
22100513Sru
23100513Sru@quotation
24100513SruPermission is granted to copy, distribute and/or modify this document
25100513Sruunder the terms of the GNU Free Documentation License, Version 1.1 or
26100513Sruany later version published by the Free Software Foundation; with no
27100513SruInvariant Sections, with the Front-Cover texts being ``A GNU Manual,''
28100513Sruand with the Back-Cover Texts as in (a) below.  A copy of the
29100513Srulicense is included in the section entitled ``GNU Free Documentation
30100513SruLicense.''
31100513Sru
32100513Sru(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
33100513Sruthis GNU Manual, like GNU software.  Copies published by the Free
34100513SruSoftware Foundation raise funds for GNU development.''
35100513Sru@end quotation
36100513Sru@end copying
37100513Sru
3842660Smarkm@dircategory Texinfo documentation system
3942660Smarkm@direntry
4093139Sru* info standalone: (info-stnd).            Read Info documents without Emacs.
4193139Sru* infokey: (info-stnd)Invoking infokey.    Compile Info customizations.
4242660Smarkm@end direntry
4342660Smarkm
4442660Smarkm@titlepage
4556160Sru@title GNU Info
4656160Sru@subtitle for version @value{VERSION}, @value{UPDATED}
4756160Sru@author Brian J. Fox (bfox@@gnu.org)
4842660Smarkm@page
4942660Smarkm@vskip 0pt plus 1filll
50100513Sru@insertcopying
5142660Smarkm@end titlepage
5242660Smarkm
5393139Sru@contents
5493139Sru
5556160Sru@ifnottex
5656160Sru@node Top
5756160Sru@top GNU Info
5842660Smarkm
59100513Sru@insertcopying
6042660Smarkm
61100513SruThis documentation is different from the documentation for the Info
62100513Srureader that is part of GNU Emacs.  If you do not know how to use Info,
63100513Srubut have a working Info reader, you should read the Emacs documentation
64100513Srufirst, as it includes more background information and a thorough tutorial.
6556160Sru@end ifnottex
6656160Sru
6742660Smarkm@menu
6856160Sru* What is Info::                What is Info?
6956160Sru* Invoking Info::               Options you can pass on the command line.
7042660Smarkm* Cursor Commands::             Commands which move the cursor within a node.
7193139Sru* Scrolling Commands::          Commands for reading the text within a node.
7242660Smarkm* Node Commands::               Commands for selecting a new node.
7342660Smarkm* Searching Commands::          Commands for searching an Info file.
7442660Smarkm* Xref Commands::               Commands for selecting cross references.
7542660Smarkm* Window Commands::             Commands which manipulate multiple windows.
7642660Smarkm* Printing Nodes::              How to print out the contents of a node.
7742660Smarkm* Miscellaneous Commands::      A few commands that defy categories.
7842660Smarkm* Variables::                   How to change the default behavior of Info.
79114472Sru* Custom Key Bindings::         How to define your own key-to-command bindings.
80100513Sru* Copying This Manual::         The GNU Free Documentation License.
8193139Sru* Index::                       Global index containing keystrokes,
8256160Sru                                  command names, variable names,
8342660Smarkm                                  and general concepts.
8442660Smarkm@end menu
8542660Smarkm
8656160Sru
8756160Sru@node What is Info
8842660Smarkm@chapter What is Info?
8942660Smarkm
9042660Smarkm@dfn{Info} is a program which is used to view Info files on an ASCII
9142660Smarkmterminal.  @dfn{Info files} are the result of processing Texinfo files
9242660Smarkmwith the program @code{makeinfo} or with one of the Emacs commands, such
9342660Smarkmas @code{M-x texinfo-format-buffer}.  Texinfo itself is a documentation
9442660Smarkmsystem that uses a single source file to produce both on-line
9556160Sruinformation and printed output.  You can typeset and print the files
9656160Sruthat you read in Info.
9742660Smarkm
9856160Sru
9956160Sru@node Invoking Info
10056160Sru@chapter Invoking Info
10193139Sru
10293139Sru@cindex Info, invoking
10393139Sru@cindex invoking Info
10442660Smarkm@cindex command line options
10556160Sru@cindex options, command line
10642660Smarkm@cindex arguments, command line
10742660Smarkm
10842660SmarkmGNU Info accepts several options to control the initial node being
10942660Smarkmviewed, and to specify which directories to search for Info files.  Here
11042660Smarkmis a template showing an invocation of GNU Info from the shell:
11142660Smarkm
11242660Smarkm@example
11356160Sruinfo [@var{option}]@dots{} [@var{menu-item}@dots{}]
11442660Smarkm@end example
11542660Smarkm
11656160SruThe program accepts the following options:
11742660Smarkm
11842660Smarkm@table @code
11993139Sru@anchor{--apropos}
12056160Sru@item --apropos=@var{string}
12156160Sru@cindex Searching all indices
12256160Sru@cindex Info files@r{, searching all indices}
12356160Sru@cindex Apropos@r{, in Info files}
12456160SruSpecify a string to search in every index of every Info file installed
12556160Sruon your system.  Info looks up the named @var{string} in all the indices
12656160Sruit can find, prints the results to standard output, and then exits.  If
12756160Sruyou are not sure which Info file explains certain issues, this option is
12856160Sruyour friend.  Note that if your system has a lot of Info files
12956160Sruinstalled, searching all of them might take some time.
13056160Sru
13193139SruYou can invoke the apropos command from inside Info; see
13293139Sru@ref{Searching Commands}.
13393139Sru
13442660Smarkm@cindex directory path
13542660Smarkm@item --directory @var{directory-path}
13642660Smarkm@itemx -d @var{directory-path}
13756160SruPrepend @var{directory-path} to the list of directory paths searched
13856160Sruwhen Info needs to find a file.  You may issue @code{--directory}
13956160Srumultiple times; once for each directory which contains Info files.  The
14056160Srulist of directories searched by Info is constructed from the value of
14156160Sruthe environment variable @code{INFOPATH}; @code{--directory} causes the
14256160Srunamed @var{directory-path} to be prepended to that list.  The value of
14356160Sru@code{INFOPATH} is a list of directories usually separated by a colon;
14456160Sruon MS-DOS/MS-Windows systems, the semicolon is used.  If you do not
14556160Srudefine @code{INFOPATH}, Info uses a default path defined when Info was
14656160Srubuilt as the initial list of directories.  If the value of
14756160Sru@code{INFOPATH} ends with a colon (or semicolon on MS-DOS/MS-Windows),
14856160Sruthe initial list of directories is constructed by appending the
14956160Srubuild-time default to the value of @code{INFOPATH}.
15042660Smarkm
15156160Sru@cindex keystrokes, recording
15256160Sru@cindex remembering user keystrokes
15356160Sru@item --dribble=@var{dribble-file}
15456160SruSpecify a file where all user keystrokes will be recorded.  This file
15556160Srucan be used later to replay the same sequence of commands, see the
15656160Sru@samp{--restore} option below.
15756160Sru
15842660Smarkm@item --file @var{filename}
15942660Smarkm@itemx -f @var{filename}
16042660Smarkm@cindex Info file, selecting
16142660SmarkmSpecify a particular Info file to visit.  By default, Info visits
16242660Smarkmthe file @code{dir}; if you use this option, Info will start with
16342660Smarkm@code{(@var{filename})Top} as the first file and node.
16442660Smarkm
16556160Sru@cindex relative Info file names
16656160Sru@cindex file names, relative
16756160Sru@cindex Info files, relative
16856160SruIf @var{filename} is an absolute file name, or begins with @file{./} or
16956160Sru@file{../}, Info looks for @var{filename} only in the directory of the
17056160Sruspecified @var{filename}, and adds the directory of @var{filename} to
17156160Sruthe value of @code{INFOPATH}.  In contrast, if @var{filename} is in the
17256160Sruform of a relative file name, but without the @file{./} or @file{../}
17356160Sruprefix, Info will only look for it in the directories specified in
17456160Sru@code{INFOPATH}.  In other words, Info does @emph{not} treat file names
17556160Sruwhich lack @file{./} and @file{../} prefix as relative to the current
17656160Srudirectory.
17756160Sru
17856160Sru@cindex compressed Info files
17956160Sru@cindex files, compressed
18056160Sru@cindex Info files, compressed
18156160SruIn every directory Info tries, if @var{filename} is not found, Info
18256160Srulooks for it with a number of known extensions of Info files@footnote{
18356160Sru@file{.info}, @file{-info}, @file{/index}, and @file{.inf}.}.  For every
18456160Sruknown extension, Info looks for a compressed file, if a regular file
18556160Sruisn't found.  Info supports files compressed with @code{gzip},
18656160Sru@code{bzip2}, @code{compress} and @code{yabba} programs; it calls
18756160Sru@code{gunzip}, @code{bunzip2}, @code{uncompress} and @code{unyabba},
18856160Sruaccordingly, to decompress such files.  Compressed Info files are
18956160Sruassumed to have @file{.z}, @file{.gz}, @file{.bz2}, @file{.Z}, or
19056160Sru@file{.Y} extensions, possibly in addition to one of the known Info
19156160Srufiles extensions@footnote{The MS-DOS version allows for the Info
19256160Sruextension, such as @code{.inf}, and the short compressed file
19356160Sruextensions, such as @file{.z} and @file{.gz}, to be merged into a single
19456160Sruextension, since DOS doesn't allow more than a single dot in the
19556160Srubasename of a file.  Thus, on MS-DOS, if Info looks for @file{bison},
19656160Srufile names like @file{bison.igz} and @file{bison.inz} will be found and
19756160Srudecompressed by @code{gunzip}.}.
19856160Sru
19956160Sru@item --help
20056160Sru@itemx -h
20156160SruProduces a relatively brief description of the available Info options.
20256160Sru
20342660Smarkm@item --index-search @var{string}
20456160Sru@cindex index search, selecting from the command line
20542660Smarkm@cindex online help, using Info as
20656160SruAfter processing all command-line arguments, go to the index in the Info
207146515Srufile and search for index entries which match @var{string}.  If such an
20856160Sruentry is found, the Info session begins with displaying the node pointed
20956160Sruto by the first matching index entry; press @kbd{,} to step through the
21056160Srurest of the matching entries.  If no such entry exists, print @samp{no
21156160Sruentries found} and exit with nonzero status.  This can be used from
21256160Sruanother program as a way to provide online help, or as a quick way of
21356160Srustarting to read an Info file at a certain node when you don't know the
21456160Sruexact name of that node.
21542660Smarkm
21693139SruThis command can also be invoked from inside Info; see @ref{Searching
21793139SruCommands}.
21893139Sru
21942660Smarkm@item --node @var{nodename}
22042660Smarkm@itemx -n @var{nodename}
22156160Sru@cindex node, selecting from the command line
22242660SmarkmSpecify a particular node to visit in the initial file that Info
22342660Smarkmloads.  This is especially useful in conjunction with
22442660Smarkm@code{--file}@footnote{Of course, you can specify both the file and node
22542660Smarkmin a @code{--node} command; but don't forget to escape the open and
22656160Sruclose parentheses and whitespace from the shell as in: @code{info --node
22756160Sru"(emacs)Buffers"}.}.  You may specify @code{--node} multiple times; for
22842660Smarkman interactive Info, each @var{nodename} is visited in its own window,
22942660Smarkmfor a non-interactive Info (such as when @code{--output} is given) each
23042660Smarkm@var{nodename} is processed sequentially.
23142660Smarkm
23242660Smarkm@item --output @var{filename}
23342660Smarkm@itemx -o @var{filename}
23442660Smarkm@cindex file, outputting to
23542660Smarkm@cindex outputting to a file
23642660SmarkmSpecify @var{filename} as the name of a file to which to direct output.
23742660SmarkmEach node that Info visits will be output to @var{filename} instead of
23842660Smarkminteractively viewed.  A value of @code{-} for @var{filename} specifies
23942660Smarkmthe standard output.
24042660Smarkm
241146515Sru@cindex colors in documents
242146515Sru@cindex ANSI escape sequences in documents
24393139Sru@item --raw-escapes
244146515Sru@itemx --no-raw-escapes
24593139Sru@itemx -R
246146515SruDo not remove ANSI escape sequences from documents.  Some versions of
24793139SruGroff, the GNU document formatter, produce man pages with ANSI escape
24893139Srusequences for bold, italics, and underlined characters, and for
249146515Srucolorized text.  By default, Info lets those escape sequences pass
250146515Sruthrough directly to the terminal.  If your terminal does not support
251146515Sruthese escapes, use @code{--no-raw-escapes} to make Info remove them.
25293139Sru
25356160Sru@cindex replaying recorded keystrokes
25456160Sru@item --restore=@var{dribble-file}
25556160SruRead keystrokes from @var{dribble-file}, presumably recorded during
25656160Sruprevious Info session (see the description of the @samp{--dribble}
25756160Sruoption above).  When the keystrokes in the files are all read, Info
25856160Srureverts its input to the usual interactive operation.
25956160Sru
26056160Sru@anchor{--show-options}
26156160Sru@cindex command-line options, how to find
26256160Sru@cindex invocation description, how to find
26356160Sru@item --show-options
26456160Sru@itemx --usage
26556160Sru@itemx -O
26656160SruThis option causes Info to look for the node that describes how to
26756160Sruinvoke the program and its command-line options, and begin the session
26856160Sruby displaying that node.  It is provided to make it easier to find the
26956160Srumost important usage information in a manual without the need to wade
27056160Sruthrough complex menu hierarchies.  The effect is similar to the
27156160Sru@code{M-x goto-invocation} command (@pxref{goto-invocation}) from inside
27256160SruInfo.
27356160Sru
27456160Sru@cindex speech synthesizers
27556160Sru@item --speech-friendly
27656160Sru@itemx -b
27756160SruOn MS-DOS/MS-Windows only, this option causes Info to use standard file
27856160SruI/O functions for screen writes.  (By default, Info uses direct writes
27956160Sruto the video memory on these systems, for faster operation and colored
28056160Srudisplay support.)  This allows the speech synthesizers used by blind
28156160Srupersons to catch the output and convert it to audible speech.
28256160Sru
28342660Smarkm@item --subnodes
28442660Smarkm@cindex @code{--subnodes}, command line option
28542660SmarkmThis option only has meaning when given in conjunction with
28642660Smarkm@code{--output}.  It means to recursively output the nodes appearing in
28742660Smarkmthe menus of each node being output.  Menu items which resolve to
28842660Smarkmexternal Info files are not output, and neither are menu items which are
28942660Smarkmmembers of an index.  Each node is only output once.
29042660Smarkm
29142660Smarkm@item --version
29242660Smarkm@cindex version information
29342660SmarkmPrints the version information of Info and exits.
29442660Smarkm
29556160Sru@anchor{--vi-keys}
29656160Sru@cindex vi-like key bindings
29756160Sru@cindex Less-like key bindings
29856160Sru@item --vi-keys
29956160SruThis option binds functions to keys differently, to emulate the key
30056160Srubindings of @code{vi} and Less.  The default key bindings are generally
30156160Srumodeled after Emacs.
30293139Sru(@xref{Custom Key Bindings},
30393139Srufor a more general way of altering GNU Info's key bindings.)
30456160Sru
305146515Sru@cindex Info manual location
306146515Sru@cindex Where is an Info manual?
307146515Sru@item --where
308146515Sru@itemx --location
309146515Sru@itemx -w
310146515SruShow the filename that would be read and exit, instead of actually
311146515Srureading it and starting Info.
312146515Sru
31342660Smarkm@item @var{menu-item}
31442660Smarkm@cindex menu, following
31556160Sru@anchor{command-line menu items}
31642660SmarkmInfo treats its remaining arguments as the names of menu items.  The
31756160Srufirst argument is a menu item in the initial node visited (generally
31856160Sru@code{dir}), the second argument is a menu item in the first argument's
31956160Srunode, etc.  You can easily move to the node of your choice by specifying
32056160Sruthe menu names which describe the path to that node.  For example,
32142660Smarkm
32242660Smarkm@example
32342660Smarkminfo emacs buffers
32442660Smarkm@end example
32542660Smarkm
32642660Smarkm@noindent
32742660Smarkmfirst selects the menu item @samp{Emacs} in the node @samp{(dir)Top},
32842660Smarkmand then selects the menu item @samp{Buffers} in the node
32942660Smarkm@samp{(emacs)Top}.
33042660Smarkm@end table
33142660Smarkm
33256160SruTo avoid searching the @file{dir} files and just show some arbitrary
33356160Srufile, use @samp{-f} and the filename, as in @samp{info -f ./foo.info}.
33456160Sru
33556160SruThe index search and the search for the node which describes program
33656160Sruinvocation and command-line options begins @emph{after} processing all
33756160Sruthe command-line menu items.  Therefore, the Info file searched for the
33856160Sruindex or the invocation node is the file where Info finds itself after
33956160Srufollowing all the menu items given on the command line.  This is so
34056160Sru@samp{info emacs --show-options} does what you'd expect.
34156160Sru
34256160Sru@c FIXME: the feature with lowercasing the file name isn't documented
34356160Sru
34456160Sru
34556160Sru@node Cursor Commands
34642660Smarkm@chapter Moving the Cursor
34742660Smarkm@cindex cursor, moving
34856160Sru@cindex moving the cursor
34942660Smarkm
35042660SmarkmMany people find that reading screens of text page by page is made
351146515Srueasier when one is able to indicate particular pieces of text with
352146515Srusome kind of pointing device.  Since this is the case, GNU Info (both
353146515Sruthe Emacs and standalone versions) have several commands which allow
354146515Sruyou to move the cursor about the screen.  The notation used in this
355146515Srumanual to describe keystrokes is identical to the notation used within
356146515Sruthe Emacs manual, and the GNU Readline manual.  @xref{User Input,,,
357146515Sruemacs, the GNU Emacs Manual}, if you are unfamiliar with the
358146515Srunotation.@footnote{Here's a short summary.  @kbd{C-@var{x}} means
359146515Srupress the @kbd{CTRL} key and the key @var{x}.  @kbd{M-@var{x}} means
360146515Srupress the @kbd{META} key and the key @var{x}.  On many terminals th
361146515Sru@kbd{META} key is known as the @kbd{ALT} key.  @kbd{SPC} is the space
362146515Srubar.  The other keys are usually called by the names imprinted on
363146515Sruthem.}
36442660Smarkm
36542660SmarkmThe following table lists the basic cursor movement commands in Info.
36642660SmarkmEach entry consists of the key sequence you should type to execute the
36742660Smarkmcursor movement, the @code{M-x}@footnote{@code{M-x} is also a command; it
36842660Smarkminvokes @code{execute-extended-command}.  @xref{M-x, , Executing an
36942660Smarkmextended command, emacs, the GNU Emacs Manual}, for more detailed
37042660Smarkminformation.} command name (displayed in parentheses), and a short
37142660Smarkmdescription of what the command does.  All of the cursor motion commands
37256160Srucan take a @dfn{numeric} argument (see @ref{Miscellaneous Commands,
37356160Sru@code{universal-argument}, to find out how to supply them}.  With a
37442660Smarkmnumeric argument, the motion commands are simply executed that
37542660Smarkmmany times; for example, a numeric argument of 4 given to
37642660Smarkm@code{next-line} causes the cursor to move down 4 lines.  With a
37742660Smarkmnegative numeric argument, the motion is reversed; an argument of -4
37842660Smarkmgiven to the @code{next-line} command would cause the cursor to move
37942660Smarkm@emph{up} 4 lines.
38042660Smarkm
38142660Smarkm@table @asis
38256160Sru@item @key{C-n} (@code{next-line})
38356160Sru@itemx @key{DOWN} (an arrow key)
38442660Smarkm@kindex C-n
38556160Sru@kindex DOWN (an arrow key)
38642660Smarkm@findex next-line
38742660SmarkmMove the cursor down to the next line.
38842660Smarkm
38956160Sru@item @key{C-p} (@code{prev-line})
39056160Sru@itemx @key{UP} (an arrow key)
39142660Smarkm@kindex C-p
39256160Sru@kindex UP (an arrow key)
39342660Smarkm@findex prev-line
39442660SmarkmMove the cursor up to the previous line.
39542660Smarkm
39656160Sru@item @key{C-a} (@code{beginning-of-line})
39756160Sru@itemx @key{Home} (on DOS/Windows only)
39842660Smarkm@kindex C-a, in Info windows
39956160Sru@kindex Home
40042660Smarkm@findex beginning-of-line
40142660SmarkmMove the cursor to the start of the current line.
40242660Smarkm
40356160Sru@item @key{C-e} (@code{end-of-line})
40456160Sru@itemx @key{End} (on DOS/Windows only)
40542660Smarkm@kindex C-e, in Info windows
40656160Sru@kindex End
40742660Smarkm@findex end-of-line
40842660SmarkmMove the cursor to the end of the current line.
40942660Smarkm
41056160Sru@item @key{C-f} (@code{forward-char})
41156160Sru@itemx @key{RIGHT} (an arrow key)
41242660Smarkm@kindex C-f, in Info windows
41356160Sru@kindex RIGHT (an arrow key)
41442660Smarkm@findex forward-char
41542660SmarkmMove the cursor forward a character.
41642660Smarkm
41756160Sru@item @key{C-b} (@code{backward-char})
41856160Sru@itemx @key{LEFT} (an arrow key)
41942660Smarkm@kindex C-b, in Info windows
42056160Sru@kindex LEFT (an arrow key)
42142660Smarkm@findex backward-char
42242660SmarkmMove the cursor backward a character.
42342660Smarkm
42456160Sru@item @key{M-f} (@code{forward-word})
42556160Sru@itemx @kbd{C-@key{RIGHT}} (on DOS/Windows only)
42642660Smarkm@kindex M-f, in Info windows
42756160Sru@kindex C-RIGHT
42842660Smarkm@findex forward-word
42942660SmarkmMove the cursor forward a word.
43042660Smarkm
43156160Sru@item @key{M-b} (@code{backward-word})
43256160Sru@itemx @kbd{C-@key{LEFT}} (on DOS/Windows only)
43342660Smarkm@kindex M-b, in Info windows
43456160Sru@kindex C-LEFT
43542660Smarkm@findex backward-word
43642660SmarkmMove the cursor backward a word.
43742660Smarkm
43856160Sru@item @key{M-<} (@code{beginning-of-node})
43956160Sru@itemx @key{C-@key{Home}} (on DOS/Windows only)
44056160Sru@itemx @key{b}
44156160Sru@itemx @key{M-b}, vi-like operation
44242660Smarkm@kindex b, in Info windows
44342660Smarkm@kindex M-<
44456160Sru@kindex C-Home
44556160Sru@kindex M-b, vi-like operation
44642660Smarkm@findex beginning-of-node
44742660SmarkmMove the cursor to the start of the current node.
44842660Smarkm
44956160Sru@item @key{M->} (@code{end-of-node})
45056160Sru@itemx @key{C-@key{End}} (on DOS/Windows only)
45156160Sru@itemx @key{e}
45242660Smarkm@kindex M->
45356160Sru@kindex e, in Info windows
45456160Sru@kindex C-End
45542660Smarkm@findex end-of-node
45642660SmarkmMove the cursor to the end of the current node.
45742660Smarkm
45856160Sru@item @key{M-r} (@code{move-to-window-line})
45942660Smarkm@kindex M-r
46042660Smarkm@findex move-to-window-line
46142660SmarkmMove the cursor to a specific line of the window.  Without a numeric
46242660Smarkmargument, @code{M-r} moves the cursor to the start of the line in the
46342660Smarkmcenter of the window.  With a numeric argument of @var{n}, @code{M-r}
46442660Smarkmmoves the cursor to the start of the @var{n}th line in the window.
46542660Smarkm@end table
46642660Smarkm
46793139Sru
46893139Sru@node Scrolling Commands
46942660Smarkm@chapter Moving Text Within a Window
47042660Smarkm@cindex scrolling
47142660Smarkm
47242660SmarkmSometimes you are looking at a screenful of text, and only part of the
47342660Smarkmcurrent paragraph you are reading is visible on the screen.  The
47442660Smarkmcommands detailed in this section are used to shift which part of the
47542660Smarkmcurrent node is visible on the screen.
47642660Smarkm
47756160SruScrolling commands are bound differently when @samp{--vi-keys} operation
478114472Sruis in effect (@pxref{--vi-keys}).  These key bindings are designated
47956160Sruwith ``vi-like operation''.
48056160Sru
48142660Smarkm@table @asis
48256160Sru@item @key{SPC} (@code{scroll-forward})
48342660Smarkm@kindex SPC, in Info windows
48442660Smarkm@findex scroll-forward
48542660SmarkmShift the text in this window up.  That is, show more of the node which
48642660Smarkmis currently below the bottom of the window.  With a numeric argument,
48742660Smarkmshow that many more lines at the bottom of the window; a numeric
48842660Smarkmargument of 4 would shift all of the text in the window up 4 lines
48942660Smarkm(discarding the top 4 lines), and show you four new lines at the bottom
49042660Smarkmof the window.  Without a numeric argument, @key{SPC} takes the bottom
49142660Smarkmtwo lines of the window and places them at the top of the window,
49256160Sruredisplaying almost a completely new screenful of lines.  If you are at
49393139Sruthe end of a node, @key{SPC} takes you to the ``next'' node, so that you can
49493139Sruread an entire manual from start to finish by repeating @key{SPC}.
49542660Smarkm
49656160SruThe default scroll size is one screen-full, but it can be changed by
49793139Sruinvoking the (@code{scroll-forward-page-only-set-window}) command,
49893139Sru@samp{z} under @samp{--vi-keys}, with a numeric argument.
49956160Sru
50093139Sru@item @key{NEXT} (an arrow key) (@code{scroll-forward-page-only})
50193139Sru@itemx @key{C-v}
50293139Sru@itemx @key{C-f}, vi-like operation
50393139Sru@itemx @key{f}, vi-like operation
50493139Sru@itemx @key{M-SPC}, vi-like operation
50593139Sru@kindex NEXT
50693139Sru@kindex C-v
50793139Sru@kindex C-f, vi-like operation
50893139Sru@kindex f, vi-like operation
50993139Sru@kindex M-SPC, vi-like operation
51093139Sru@findex scroll-forward-page-only
51193139SruShift the text in this window up.  This is identical to the @key{SPC}
51293139Sruoperation above, except that it never scrolls beyond the end of the
51393139Srucurrent node.
51493139Sru
51556160Sru@kindex PageDown
51656160SruThe @key{NEXT} key is known as the @key{PageDown} key on some
51793139Srukeyboards.
51856160Sru
51993139Sru@item @key{z} (@code{scroll-forward-page-only-set-window}, vi-like operation)
52056160Sru@kindex z, vi-like operation
52193139Sru@findex scroll-forward-page-only-set-window
52293139SruScroll forward, like with @key{NEXT}, but if a numeric argument is
52356160Sruspecified, it becomes the default scroll size for subsequent
52493139Sru@code{scroll-forward} and @code{scroll-backward} commands and their
52593139Sruilk.
52656160Sru
52756160Sru@item @key{DEL} (@code{scroll-backward})
52893139Sru@kindex DEL, in Info windows
52993139Sru@findex scroll-backward
53093139SruShift the text in this window down.  The inverse of
53193139Sru@code{scroll-forward}.
53293139SruIf you are at the start of a node, @key{DEL} takes you to the
53393139Sru``previous'' node, so that you can read an entire manual from finish to
53493139Srustart by repeating @key{DEL}.  The default scroll size can be changed by
53593139Sruinvoking the (@code{scroll-backward-page-only-set-window}) command,
53693139Sru@samp{w} under @samp{--vi-keys}, with a numeric argument.
53793139Sru
53893139Sru@itemx @key{PREVIOUS} (arrow key) (@code{scroll-backward-page-only})
53956160Sru@itemx @key{PRIOR} (arrow key)
54056160Sru@itemx @key{M-v}
54156160Sru@itemx @key{b}, vi-like operation
54256160Sru@itemx @key{C-b}, vi-like operation
54356160Sru@kindex PREVIOUS
54442660Smarkm@kindex M-v
54556160Sru@kindex b, vi-like operation
54656160Sru@kindex C-b, vi-like operation
54793139Sru@findex scroll-backward-page-only
54842660SmarkmShift the text in this window down.  The inverse of
54993139Sru@code{scroll-forward-page-only}.  Does not scroll beyond the start of
55093139Sruthe current node.  The default scroll size can be changed by invoking
55193139Sruthe(@code{scroll-backward-page-only-set-window}) command, @samp{w} under
55256160Sru@samp{--vi-keys}, with a numeric argument.
55356160Sru
55493139Sru@item @key{w} (@code{scroll-backward-page-only-set-window}, vi-like operation)
55556160Sru@kindex w, vi-like operation
55693139Sru@findex scroll-backward-page-only-set-window
55793139SruScroll backward, like with @key{PREVIOUS}, but if a numeric argument is
55856160Sruspecified, it becomes the default scroll size for subsequent
55956160Sru@code{scroll-forward} and @code{scroll-backward} commands.
56056160Sru
56156160Sru@item @key{C-n} (@code{down-line}, vi-like operation)
56256160Sru@itemx @key{C-e}, vi-like operation
56356160Sru@itemx @key{RET}, vi-like operation
56456160Sru@itemx @key{LFD}, vi-like operation
56556160Sru@itemx @key{DOWN}, vi-like operation
56656160Sru@kindex C-n, vi-like operation
56756160Sru@kindex C-e, vi-like operation
56856160Sru@kindex RET, vi-like operation
56956160Sru@kindex LFD, vi-like operation
57056160Sru@kindex DOWN, vi-like operation
57156160Sru@findex down-line
57256160SruScroll forward by one line.  With a numeric argument, scroll forward
57356160Sruthat many lines.
57456160Sru
57556160Sru@item @key{C-p} (@code{up-line}, vi-like operation)
57656160Sru@itemx @key{UP}, vi-like operation
57756160Sru@itemx @key{y}, vi-like operation
57856160Sru@itemx @key{k}, vi-like operation
57956160Sru@itemx @key{C-k}, vi-like operation
58056160Sru@itemx @key{C-y}, vi-like operation
58156160Sru@kindex C-p, vi-like operation
58256160Sru@kindex UP, vi-like operation
58356160Sru@kindex y, vi-like operation
58456160Sru@kindex k, vi-like operation
58556160Sru@kindex C-k, vi-like operation
58656160Sru@kindex C-y, vi-like operation
58756160Sru@findex up-line
58856160SruScroll backward one line.  With a numeric argument, scroll backward that
58956160Srumany lines.
59056160Sru
59156160Sru@item @key{d} (@code{scroll-half-screen-down}, vi-like operation)
59256160Sru@itemx @key{C-d}, vi-like operation
59356160Sru@kindex d, vi-like operation
59456160Sru@kindex C-d, vi-like operation
59556160Sru@findex scroll-half-screen-down
59656160SruScroll forward by half of the screen size.  With a numeric argument,
59756160Sruscroll that many lines.  If an argument is specified, it becomes the new
59856160Srudefault number of lines to scroll for subsequent @samp{d} and @samp{u}
59956160Srucommands.
60056160Sru
60156160Sru@item @key{u} (@code{scroll-half-screen-up}, vi-like operation)
60256160Sru@itemx @key{C-u}, vi-like operation
60356160Sru@kindex u, vi-like operation
60456160Sru@kindex C-u, vi-like operation
60556160Sru@findex scroll-half-screen-up
60656160SruScroll back by half of the screen size.  With a numeric argument,
60756160Sruscroll that many lines.  If an argument is specified, it becomes the new
60856160Srudefault number of lines to scroll for subsequent @samp{u} and @samp{d}
60956160Srucommands.
61042660Smarkm@end table
61142660Smarkm
61242660Smarkm@cindex scrolling through node structure
61342660SmarkmThe @code{scroll-forward} and @code{scroll-backward} commands can also
61442660Smarkmmove forward and backward through the node structure of the file.  If
61542660Smarkmyou press @key{SPC} while viewing the end of a node, or @key{DEL} while
61642660Smarkmviewing the beginning of a node, what happens is controlled by the
61742660Smarkmvariable @code{scroll-behavior}.  @xref{Variables,
61842660Smarkm@code{scroll-behavior}}, for more information.
61942660Smarkm
62093139SruThe @code{scroll-forward-page-only} and @code{scroll-backward-page-only}
62193139Srucommands never scroll beyond the current node.
62293139Sru
62356160Sru@kindex PageUp
62456160SruThe @key{PREVIOUS} key is the @key{PageUp} key on many keyboards.  Emacs
62556160Srurefers to it by the name @key{PRIOR}.  When you use @key{PRIOR} or
62656160Sru@key{PageUp} to scroll, Info never scrolls beyond the beginning of the
62756160Srucurrent node.
62856160Sru
62956160Sru@kindex BS (backspace)
63056160SruIf your keyboard lacks the @key{DEL} key, look for a key called
63156160Sru@key{BS}, or @samp{BackSpace}, sometimes designated with an arrow which
63256160Srupoints to the left, which should perform the same function.
63356160Sru
63442660Smarkm@table @asis
63556160Sru@item @key{C-l} (@code{redraw-display})
63642660Smarkm@kindex C-l
63742660Smarkm@findex redraw-display
63842660SmarkmRedraw the display from scratch, or shift the line containing the cursor
63942660Smarkmto a specified location.  With no numeric argument, @samp{C-l} clears
64042660Smarkmthe screen, and then redraws its entire contents.  Given a numeric
64142660Smarkmargument of @var{n}, the line containing the cursor is shifted so that
64242660Smarkmit is on the @var{n}th line of the window.
64342660Smarkm
64456160Sru@item @kbd{C-x @key{w}} (@code{toggle-wrap})
64542660Smarkm@kindex C-w
64642660Smarkm@findex toggle-wrap
64742660SmarkmToggles the state of line wrapping in the current window.  Normally,
64842660Smarkmlines which are longer than the screen width @dfn{wrap}, i.e., they are
64942660Smarkmcontinued on the next line.  Lines which wrap have a @samp{\} appearing
65042660Smarkmin the rightmost column of the screen.  You can cause such lines to be
65142660Smarkmterminated at the rightmost column by changing the state of line
65242660Smarkmwrapping in the window with @code{C-x w}.  When a line which needs more
65342660Smarkmspace than one screen width to display is displayed, a @samp{$} appears
65442660Smarkmin the rightmost column of the screen, and the remainder of the line is
65556160Sruinvisible.  When long lines are truncated, the modeline displays the
65656160Sru@samp{$} character near its left edge.
65742660Smarkm@end table
65842660Smarkm
65993139Sru
66093139Sru@node Node Commands
66193139Sru@chapter Selecting a Node
66242660Smarkm@cindex nodes, selection of
66342660Smarkm
66442660SmarkmThis section details the numerous Info commands which select a new node
66542660Smarkmto view in the current window.
66642660Smarkm
66742660SmarkmThe most basic node commands are @samp{n}, @samp{p}, @samp{u}, and
66856160Sru@samp{l}.  Note that the commands to select nodes are mapped differently
66956160Sruwhen @samp{--vi-keys} is in effect; these keybindings are designated
67056160Srubelow as ``vi-like operation''.
67142660Smarkm
67242660SmarkmWhen you are viewing a node, the top line of the node contains some Info
67342660Smarkm@dfn{pointers} which describe where the next, previous, and up nodes
67442660Smarkmare.  Info uses this line to move about the node structure of the file
67542660Smarkmwhen you use the following commands:
67642660Smarkm
67742660Smarkm@table @asis
67856160Sru@item @key{n} (@code{next-node})
67956160Sru@itemx @kbd{C-@key{NEXT}} (on DOS/Windows only)
68056160Sru@itemx @kbd{C-x @key{n}}, vi-like operation
68142660Smarkm@kindex n
68256160Sru@kindex C-NEXT
68356160Sru@kindex C-x n, vi-like operation
68442660Smarkm@findex next-node
68556160SruSelect the `Next' node.
68642660Smarkm
68756160Sru@kindex C-PgDn
68856160SruThe @key{NEXT} key is known as the @key{PgDn} key on some
68956160Srukeyboards.
69056160Sru
69156160Sru@item @key{p} (@code{prev-node})
69256160Sru@itemx @kbd{C-@key{PREVIOUS}} (on DOS/Windows only)
69342660Smarkm@kindex p
69456160Sru@kindex C-PREVIOUS
69542660Smarkm@findex prev-node
69642660SmarkmSelect the `Prev' node.
69742660Smarkm
69856160Sru@kindex C-PgUp
69956160SruThe @key{PREVIOUS} key is known as the @key{PgUp} key on some
70056160Srukeyboards.
70156160Sru
70256160Sru@item @key{u} (@code{up-node})
70356160Sru@itemx @kbd{C-@key{UP}} (an arrow key on DOS/Windows only)
70456160Sru@itemx @kbd{C-x @key{u}}, vi-like operation
70542660Smarkm@kindex u
70656160Sru@kindex C-UP
70756160Sru@kindex C-x u, vi-like operation
70842660Smarkm@findex up-node
70942660SmarkmSelect the `Up' node.
71042660Smarkm@end table
71142660Smarkm
71242660SmarkmYou can easily select a node that you have already viewed in this window
713146515Sruby using the @samp{l} command---this name stands for ``last'', and
71456160Sruactually moves backwards through the history of visited nodes for this
71556160Sruwindow.  This is handy when you followed a reference to another node,
71656160Srupossibly to read about a related issue, and would like then to resume
71756160Srureading at the same place where you started the excursion.
71842660Smarkm
71956160SruEach node where you press @samp{l} is discarded from the history.  Thus,
72056160Sruby the time you get to the first node you visited in a window, the
72156160Sruentire history of that window is discarded.
72256160Sru
72342660Smarkm@table @asis
72456160Sru@item @key{l} (@code{history-node})
72556160Sru@itemx @key{C-@key{CENTER}} (on DOS/Windows only)
72656160Sru@itemx @key{'}, vi-like operation
72742660Smarkm@kindex l
72856160Sru@kindex C-CENTER
72956160Sru@kindex ', vi-like operation
73042660Smarkm@findex history-node
73156160SruPop the most recently selected node in this window from the node
73256160Sruhistory.
73342660Smarkm@end table
73442660Smarkm
73542660SmarkmTwo additional commands make it easy to select the most commonly
73642660Smarkmselected nodes; they are @samp{t} and @samp{d}.
73742660Smarkm
73842660Smarkm@table @asis
73956160Sru@item @key{t} (@code{top-node})
74056160Sru@itemx @key{M-t}, vi-like operation
74142660Smarkm@kindex t
74256160Sru@kindex M-t, vi-like operation
74342660Smarkm@findex top-node
74442660SmarkmSelect the node @samp{Top} in the current Info file.
74542660Smarkm
74656160Sru@item @key{d} (@code{dir-node})
74756160Sru@itemx @key{M-d}, vi-like operation
74842660Smarkm@kindex d
74956160Sru@kindex M-d, vi-like operation
75042660Smarkm@findex dir-node
75142660SmarkmSelect the directory node (i.e., the node @samp{(dir)}).
75242660Smarkm@end table
75342660Smarkm
75442660SmarkmHere are some other commands which immediately result in the selection
75542660Smarkmof a different node in the current window:
75642660Smarkm
75742660Smarkm@table @asis
75856160Sru@item @key{<} (@code{first-node})
75956160Sru@itemx @key{g}, vi-like operation
76042660Smarkm@kindex <
76156160Sru@kindex g, vi-like operation
76242660Smarkm@findex first-node
76342660SmarkmSelects the first node which appears in this file.  This node is most
76456160Sruoften @samp{Top}, but it does not have to be.  With a numeric argument
76556160Sru@var{N}, select the @var{N}th node (the first node is node 1).  An
76656160Sruargument of zero is the same as the argument of 1.
76742660Smarkm
76856160Sru@item @key{>} (@code{last-node})
76956160Sru@itemx @key{G}, vi-like operation
77042660Smarkm@kindex >
77156160Sru@kindex G, vi-like operation
77242660Smarkm@findex last-node
77356160SruSelect the last node which appears in this file.  With a numeric argument
77456160Sru@var{N}, select the @var{N}th node (the first node is node 1).  An
77556160Sruargument of zero is the same as no argument, i.e., it selects the last
77656160Srunode.
77742660Smarkm
77856160Sru@item @key{]} (@code{global-next-node})
77942660Smarkm@kindex ]
78042660Smarkm@findex global-next-node
78142660SmarkmMove forward or down through node structure.  If the node that you are
78242660Smarkmcurrently viewing has a @samp{Next} pointer, that node is selected.
78342660SmarkmOtherwise, if this node has a menu, the first menu item is selected.  If
78442660Smarkmthere is no @samp{Next} and no menu, the same process is tried with the
78542660Smarkm@samp{Up} node of this node.
78642660Smarkm
78756160Sru@item @key{[} (@code{global-prev-node})
78842660Smarkm@kindex [
78942660Smarkm@findex global-prev-node
79042660SmarkmMove backward or up through node structure.  If the node that you are
79142660Smarkmcurrently viewing has a @samp{Prev} pointer, that node is selected.
79242660SmarkmOtherwise, if the node has an @samp{Up} pointer, that node is selected,
79342660Smarkmand if it has a menu, the last item in the menu is selected.
79442660Smarkm@end table
79542660Smarkm
79642660SmarkmYou can get the same behavior as @code{global-next-node} and
79742660Smarkm@code{global-prev-node} while simply scrolling through the file with
79842660Smarkm@key{SPC} and @key{DEL}; @xref{Variables, @code{scroll-behavior}}, for
79942660Smarkmmore information.
80042660Smarkm
80142660Smarkm@table @asis
80256160Sru@anchor{goto-node}
80356160Sru@item @key{g} (@code{goto-node})
80456160Sru@itemx @kbd{C-x @key{g}}, vi-like operation
80542660Smarkm@kindex g
80656160Sru@kindex C-x g, vi-like operation
80742660Smarkm@findex goto-node
80856160SruRead the name of a node and select it.  While reading the node name,
80956160Srucompletion (@pxref{The Echo Area, completion}) is only done for the
81056160Srunodes which reside in one of the Info files that were loaded in the
81156160Srucurrent Info session; if the desired node resides in some other file,
81256160Sruyou must type the node exactly as it appears in that Info file, and you
81356160Srumust include the Info file of the other file.  For example,
81442660Smarkm
81542660Smarkm@example
81642660Smarkm@code{g(emacs)Buffers}
81742660Smarkm@end example
81842660Smarkm
81942660Smarkmfinds the node @samp{Buffers} in the Info file @file{emacs}.
82042660Smarkm
82156160Sru@anchor{goto-invocation}
82256160Sru@item @key{O} (@code{goto-invocation}
82356160Sru@itemx @key{I}
82456160Sru@kindex O
82556160Sru@kindex I
82656160Sru@findex goto-invocation
82756160Sru@cindex finding the Invocation node
82856160SruRead the name of a program and look for a node in the current Info file
82956160Sruwhich describes the invocation and the command-line options for that
83056160Sruprogram.  The default program name is derived from the name of the
83156160Srucurrent Info file.  This command does the same as the
83256160Sru@samp{--show-options} command-line option (@pxref{--show-options}), but
83356160Sruit also allows to specify the program name; this is important for those
83456160Srumanuals which describe several programs.
83556160Sru
83656160SruIf you need to find the Invocation node of a program that is documented
83756160Sruin another Info file, you need to visit that file before invoking
83856160Sru@samp{I}.  For example, if you are reading the Emacs manual and want to
83956160Srusee the command-line options of the @code{makeinfo} program, type @kbd{g
84056160Sru(texinfo) @key{RET}} and then @kbd{I makeinfo @key{RET}}.  If you don't
84156160Sruknow what Info file documents the command, or if invoking @samp{I}
84256160Srudoesn't display the right node, go to the @samp{(dir)} node (using the
84356160Sru@samp{d} command) and invoke @samp{I} from there.
84456160Sru
84556160Sru@item @key{G} (@code{menu-sequence})
84656160Sru@kindex G
84756160Sru@findex menu-sequence
84856160Sru@cindex menu, following, from inside Info
84956160SruRead a sequence of menu entries and follow it.  Info prompts for a
85056160Srusequence of menu items separated by commas.  (Since commas are not
85156160Sruallowed in a node name, they are a natural choice for a delimiter in a
85256160Srulist of menu items.)  Info then looks up the first item in the menu of
85356160Sruthe node @samp{(dir)} (if the @samp{(dir)} node cannot be found, Info
85456160Sruuses @samp{Top}).  If such an entry is found, Info goes to the node it
85556160Srupoints to and looks up the second item in the menu of that node, etc.
85656160SruIn other words, you can specify a complete path which descends through
85756160Sruthe menu hierarchy of a particular Info file starting at the
85856160Sru@samp{(dir)} node.  This has the same effect as if you typed the menu
85956160Sruitem sequence on Info's command line, see @ref{command-line menu items,,
86056160SruInfo command-line arguments processing}.  For example,
86156160Sru
86256160Sru@example
86356160Sru @kbd{G Texinfo,Overview,Reporting Bugs @key{RET}}
86456160Sru@end example
86556160Sru
86656160Sru@noindent
86756160Srudisplays the node @samp{Reporting Bugs} in the Texinfo manual.  (You
86856160Srudon't actually need to type the menu items in their full length, or in
86956160Srutheir exact letter-case.  However, if you do type the menu items
87056160Sruexactly, Info will find it faster.)
87156160Sru
87256160SruIf any of the menu items you type are not found, Info stops at the last
87356160Sruentry it did find and reports an error.
87456160Sru
87556160Sru@item @kbd{C-x @key{k}} (@code{kill-node})
87642660Smarkm@kindex C-x k
87742660Smarkm@findex kill-node
87842660SmarkmKill a node.  The node name is prompted for in the echo area, with a
87942660Smarkmdefault of the current node.  @dfn{Killing} a node means that Info tries
88042660Smarkmhard to forget about it, removing it from the list of history nodes kept
88142660Smarkmfor the window where that node is found.  Another node is selected in
88242660Smarkmthe window which contained the killed node.
88342660Smarkm
88456160Sru@item @kbd{C-x C-f} (@code{view-file})
88542660Smarkm@kindex C-x C-f
88642660Smarkm@findex view-file
88742660SmarkmRead the name of a file and selects the entire file.  The command
88842660Smarkm@example
88942660Smarkm@code{C-x C-f @var{filename}}
89042660Smarkm@end example
89142660Smarkmis equivalent to typing
89242660Smarkm@example
89342660Smarkm@code{g(@var{filename})*}
89442660Smarkm@end example
89542660Smarkm
89656160Sru@item @kbd{C-x C-b} (@code{list-visited-nodes})
89742660Smarkm@kindex C-x C-b
89842660Smarkm@findex list-visited-nodes
89942660SmarkmMake a window containing a menu of all of the currently visited nodes.
90042660SmarkmThis window becomes the selected window, and you may use the standard
90142660SmarkmInfo commands within it.
90242660Smarkm
90356160Sru@item @kbd{C-x @key{b}} (@code{select-visited-node})
90442660Smarkm@kindex C-x b
90542660Smarkm@findex select-visited-node
90642660SmarkmSelect a node which has been previously visited in a visible window.
90742660SmarkmThis is similar to @samp{C-x C-b} followed by @samp{m}, but no window is
90842660Smarkmcreated.
90942660Smarkm@end table
91042660Smarkm
91193139Sru
91293139Sru@node Searching Commands
91342660Smarkm@chapter Searching an Info File
91442660Smarkm@cindex searching
91542660Smarkm
91642660SmarkmGNU Info allows you to search for a sequence of characters throughout an
91742660Smarkmentire Info file, search through the indices of an Info file, or find
91842660Smarkmareas within an Info file which discuss a particular topic.
91942660Smarkm
92042660Smarkm@table @asis
92156160Sru@item @key{s} (@code{search})
92256160Sru@itemx @key{/}
92342660Smarkm@kindex s
92456160Sru@kindex /
92542660Smarkm@findex search
92656160SruRead a string in the echo area and search for it.  If the string
92756160Sruincludes upper-case characters, the Info file is searched
92856160Srucase-sensitively; otherwise Info ignores the letter case.  With a
92956160Srunumeric argument of @var{N}, search for @var{N}th occurrence of the
93056160Srustring.  Negative arguments search backwards.
93142660Smarkm
93256160Sru@item @key{?} (@code{search-backward}, vi-like operation)
93356160Sru@kindex ?, vi-like operation
93456160Sru@findex search-backward
93556160SruRead a string in the echo area and search backward through the Info file
93656160Srufor that string.  If the string includes upper-case characters, the Info
93756160Srufile is searched case-sensitively; otherwise Info ignores the letter
93856160Srucase.  With a numeric argument of @var{N}, search for @var{N}th
93956160Sruoccurrence of the string.  Negative arguments search forward.
94056160Sru
94156160Sru@item @key{S} (@code{search-case-sensitively}
94256160Sru@kindex S
94356160Sru@findex search-case-sensitively
94456160Sru@cindex search, case-sensitive
94556160Sru@cindex case-sensitive search
94656160SruRead a string in the echo area and search for it case-sensitively, even
94756160Sruif the string includes only lower-case letters.  With a numeric argument
94856160Sruof @var{N}, search for @var{N}th occurrence of the string.  Negative
94956160Sruarguments search backwards.
95056160Sru
95156160Sru@item @kbd{C-x @key{n}} (@code{search-next})
95256160Sru@itemx @key{n}, vi-like operation
95356160Sru@kindex C-x n
95456160Sru@kindex n, vi-like operation
95556160Sru@findex search-next
95656160Sru@cindex repeated search
95756160SruSearch for the same string used in the last search command, in the same
95856160Srudirection, and with the same case-sensitivity option.  With a numeric
95956160Sruargument of @var{N}, search for @var{N}th next occurrence.
96056160Sru
96156160Sru@item @kbd{C-x @key{N}} (@code{search-previous})
96256160Sru@itemx @key{N}, vi-like operation
96356160Sru@kindex C-x N
96456160Sru@kindex n, vi-like operation
96556160Sru@findex search-previous
96656160SruSearch for the same string used in the last search command, and with the
96756160Srusame case-sensitivity option, but in the reverse direction.  With a
96856160Srunumeric argument of @var{N}, search for @var{N}th previous occurrence.
96956160Sru
97056160Sru@item @key{C-s} (@code{isearch-forward})
97142660Smarkm@kindex C-s
97242660Smarkm@findex isearch-forward
97356160Sru@cindex incremental search
97442660SmarkmInteractively search forward through the Info file for a string as you
97556160Srutype it.  If the string includes upper-case characters, the search is
97656160Srucase-sensitive; otherwise Info ignores the letter case.
97742660Smarkm
97856160Sru@item @key{C-r} (@code{isearch-backward})
97942660Smarkm@kindex C-r
98042660Smarkm@findex isearch-backward
98142660SmarkmInteractively search backward through the Info file for a string as
98256160Sruyou type it.  If the string includes upper-case characters, the search
98356160Sruis case-sensitive; otherwise Info ignores the letter case.
98442660Smarkm
98556160Sru@item @key{i} (@code{index-search})
98642660Smarkm@kindex i
98742660Smarkm@findex index-search
98856160Sru@cindex index, searching
98956160Sru@cindex searching, in the indices
99042660SmarkmLook up a string in the indices for this Info file, and select a node
991146515Sruto which the found index entry points.
99242660Smarkm
99356160Sru@item @key{,} (@code{next-index-match})
99442660Smarkm@kindex ,
99542660Smarkm@findex next-index-match
99642660SmarkmMove to the node containing the next matching index item from the last
99742660Smarkm@samp{i} command.
99893139Sru
99993139Sru@item @kbd{M-x index-apropos}
100093139Sru@findex index-apropos
100193139SruGrovel the indices of all the known Info files on your system for a
100293139Srustring, and build a menu of the possible matches.
100342660Smarkm@end table
100442660Smarkm
100556160SruThe most basic searching command is @samp{s} or @samp{/}
100656160Sru(@code{search}).  The @samp{s} command prompts you for a string in the
100756160Sruecho area, and then searches the remainder of the Info file for an
100856160Sruoccurrence of that string.  If the string is found, the node containing
100956160Sruit is selected, and the cursor is left positioned at the start of the
101056160Srufound string.  Subsequent @samp{s} commands show you the default search
101156160Srustring within @samp{[} and @samp{]}; pressing @key{RET} instead of
101256160Srutyping a new string will use the default search string.  Under
101356160Sru@samp{--vi-keys} (@pxref{--vi-keys}), using the @samp{n} or @samp{N}
101456160Srucommands is a faster way of searching for the same string.
101542660Smarkm
101642660Smarkm@dfn{Incremental searching} is similar to basic searching, but the
101742660Smarkmstring is looked up while you are typing it, instead of waiting until
101842660Smarkmthe entire search string has been specified.
101942660Smarkm
102056160Sru@cindex search, and case-sensitivity
102156160Sru@cindex case-sensitivity, and search
102256160SruBoth incremental and non-incremental search by default ignore the case
102356160Sruof letters when comparing the Info file text with the search string.
102456160SruHowever, an uppercase letter in the search string makes the search
102556160Srucase-sensitive.  You can force a case-sensitive non-incremental search,
102656160Srueven for a string that includes only lower-case letters, by using the
102756160Sru@samp{S} command (@code{search-case-sensitively}).  The @samp{n} and
102856160Sru@samp{N} commands operate case-sensitively if the last search command
102956160Sruwas @samp{S}.
103056160Sru
103193139SruThe most efficient means of finding something quickly in a manual is
103293139Sruthe @samp{i} command (@code{index-search}).  This command prompts for
103393139Srua string, and then looks for that string in all the indices of the
103493139Srucurrent Info manual.  If it finds a matching index entry, it displays
103593139Sruthe node to which that entry refers and prints the full text of the
103693139Sruentry in the echo area.  You can press @samp{,}
103793139Sru(@code{next-index-match}) to find more matches.  A good Info manual
103893139Sruhas all of its important concepts indexed, so the @samp{i} command
103993139Srulets you use a manual as a reference.
104093139Sru
104193139SruIf you don't know what manual documents something, try the @kbd{M-x
1042146515Sruindex-apropos} command.  It prompts for a string and then looks up
1043146515Sruthat string in all the indices of all the Info documents installed on
1044146515Sruyour system.  It can also be invoked from the command line; see
1045146515Sru@ref{--apropos}.
104693139Sru
104793139Sru
104893139Sru@node Xref Commands
104942660Smarkm@chapter Selecting Cross References
105042660Smarkm
105142660SmarkmWe have already discussed the @samp{Next}, @samp{Prev}, and @samp{Up}
105242660Smarkmpointers which appear at the top of a node.  In addition to these
105342660Smarkmpointers, a node may contain other pointers which refer you to a
105442660Smarkmdifferent node, perhaps in another Info file.  Such pointers are called
105542660Smarkm@dfn{cross references}, or @dfn{xrefs} for short.
105642660Smarkm
105742660Smarkm@menu
105842660Smarkm* Parts of an Xref::            What a cross reference is made of.
105942660Smarkm* Selecting Xrefs::             Commands for selecting menu or note items.
106042660Smarkm@end menu
106142660Smarkm
1062116525Sru@node Parts of an Xref
106342660Smarkm@section Parts of an Xref
106442660Smarkm
106542660SmarkmCross references have two major parts: the first part is called the
106642660Smarkm@dfn{label}; it is the name that you can use to refer to the cross
106742660Smarkmreference, and the second is the @dfn{target}; it is the full name of
106842660Smarkmthe node that the cross reference points to.
106942660Smarkm
107042660SmarkmThe target is separated from the label by a colon @samp{:}; first the
107142660Smarkmlabel appears, and then the target.  For example, in the sample menu
107242660Smarkmcross reference below, the single colon separates the label from the
107342660Smarkmtarget.
107442660Smarkm
107542660Smarkm@example
107642660Smarkm* Foo Label: Foo Target.        More information about Foo.
107742660Smarkm@end example
107842660Smarkm
107942660SmarkmNote the @samp{.} which ends the name of the target.  The @samp{.} is
108042660Smarkmnot part of the target; it serves only to let Info know where the target
108142660Smarkmname ends.
108242660Smarkm
108342660SmarkmA shorthand way of specifying references allows two adjacent colons to
108442660Smarkmstand for a target name which is the same as the label name:
108542660Smarkm
108642660Smarkm@example
108742660Smarkm* Foo Commands::                Commands pertaining to Foo.
108842660Smarkm@end example
108942660Smarkm
109042660SmarkmIn the above example, the name of the target is the same as the name of
109142660Smarkmthe label, in this case @code{Foo Commands}.
109242660Smarkm
109342660SmarkmYou will normally see two types of cross reference while viewing nodes:
109442660Smarkm@dfn{menu} references, and @dfn{note} references.  Menu references
109542660Smarkmappear within a node's menu; they begin with a @samp{*} at the beginning
109642660Smarkmof a line, and continue with a label, a target, and a comment which
109742660Smarkmdescribes what the contents of the node pointed to contains.
109842660Smarkm
109942660SmarkmNote references appear within the body of the node text; they begin with
110042660Smarkm@code{*Note}, and continue with a label and a target.
110142660Smarkm
110242660SmarkmLike @samp{Next}, @samp{Prev}, and @samp{Up} pointers, cross references
110342660Smarkmcan point to any valid node.  They are used to refer you to a place
110442660Smarkmwhere more detailed information can be found on a particular subject.
110542660SmarkmHere is a cross reference which points to a node within the Texinfo
110642660Smarkmdocumentation:  @xref{xref, , Writing an Xref, texinfo, the Texinfo
110742660SmarkmManual}, for more information on creating your own texinfo cross
110842660Smarkmreferences.
110942660Smarkm
1110116525Sru@node Selecting Xrefs
111142660Smarkm@section Selecting Xrefs
111242660Smarkm
111342660SmarkmThe following table lists the Info commands which operate on menu items.
111442660Smarkm
111542660Smarkm@table @asis
111656160Sru@item @key{1} (@code{menu-digit})
111756160Sru@itemx @key{2} @dots{} @key{9}
111856160Sru@itemx @key{M-1}, vi-like operation
111956160Sru@itemx @key{M-2} @dots{} @key{M-9}, vi-like operation
112042660Smarkm@cindex 1 @dots{} 9, in Info windows
112156160Sru@cindex M-1 @dots{} M-9, vi-like operation
112242660Smarkm@kindex 1 @dots{} 9, in Info windows
112356160Sru@kindex M-1 @dots{} M-9, vi-like operation
112442660Smarkm@findex menu-digit
112542660SmarkmWithin an Info window, pressing a single digit, (such as @samp{1}),
112642660Smarkmselects that menu item, and places its node in the current window.
112742660SmarkmFor convenience, there is one exception; pressing @samp{0} selects the
112856160Sru@emph{last} item in the node's menu.  When @samp{--vi-keys} is in
112956160Srueffect, digits set the numeric argument, so these commands are remapped
113056160Sruto their @samp{M-} varieties.  For example, to select the last menu
113156160Sruitem, press @key{M-0}.
113242660Smarkm
113356160Sru@item @key{0} (@code{last-menu-item})
113456160Sru@itemx @key{M-0}, vi-like operation
113542660Smarkm@kindex 0, in Info windows
113656160Sru@kindex M-0, vi-like operation
113742660Smarkm@findex last-menu-item
113842660SmarkmSelect the last item in the current node's menu.
113942660Smarkm
114056160Sru@item @key{m} (@code{menu-item})
114142660Smarkm@kindex m
114242660Smarkm@findex menu-item
114342660SmarkmReads the name of a menu item in the echo area and selects its node.
114456160SruCompletion is available while reading the menu label.  @xref{The Echo
114556160SruArea, completion}.
114642660Smarkm
114756160Sru@item @kbd{M-x find-menu}
114842660Smarkm@findex find-menu
114942660SmarkmMove the cursor to the start of this node's menu.
115042660Smarkm@end table
115142660Smarkm
115256160SruThis table lists the Info commands which operate on cross references.
115342660Smarkm
115442660Smarkm@table @asis
115556160Sru@item @key{f} (@code{xref-item})
115656160Sru@itemx @key{r}
115756160Sru@item @key{M-f}, vi-like operation
115856160Sru@itemx @kbd{C-x @key{r}}, vi-like operation
115942660Smarkm@kindex f
116042660Smarkm@kindex r
116156160Sru@kindex M-f, vi-like operation
116256160Sru@kindex C-x r, vi-like operation
116342660Smarkm@findex xref-item
116442660SmarkmReads the name of a note cross reference in the echo area and selects
116542660Smarkmits node.  Completion is available while reading the cross reference
116656160Srulabel.  @xref{The Echo Area, completion}.
116742660Smarkm@end table
116842660Smarkm
116942660SmarkmFinally, the next few commands operate on menu or note references alike:
117042660Smarkm
117142660Smarkm@table @asis
117256160Sru@item @key{TAB} (@code{move-to-next-xref})
117342660Smarkm@kindex TAB, in Info windows
117442660Smarkm@findex move-to-next-xref
117542660SmarkmMove the cursor to the start of the next nearest menu item or note
117642660Smarkmreference in this node.  You can then use @key{RET}
117742660Smarkm(@code{select-reference-this-line}) to select the menu or note reference.
117842660Smarkm
117956160Sru@item @key{M-TAB} (@code{move-to-prev-xref})
118056160Sru@itemx @key{Shift-@key{TAB}} (on DOS/Windows only)
118142660Smarkm@kindex M-TAB, in Info windows
118242660Smarkm@findex move-to-prev-xref
118342660SmarkmMove the cursor the start of the nearest previous menu item or note
118442660Smarkmreference in this node.
118542660Smarkm
118656160Sru@kindex Shift-TAB, in Info windows
118756160Sru@kindex BackTab, in Info windows
118856160SruOn DOS/Windows only, the @kbd{Shift-@key{TAB}} key is an alias for
118956160Sru@kbd{M-@key{TAB}}.  This key is sometimes called @samp{BackTab}.
119056160Sru
119156160Sru@item @key{RET} (@code{select-reference-this-line})
119256160Sru@itemx @key{M-g}, vi-like operation
119342660Smarkm@kindex RET, in Info windows
119456160Sru@kindex M-g, vi-like operation
119542660Smarkm@findex select-reference-this-line
119642660SmarkmSelect the menu item or note reference appearing on this line.
119742660Smarkm@end table
119842660Smarkm
119993139Sru
120093139Sru@node Window Commands
120142660Smarkm@chapter Manipulating Multiple Windows
120242660Smarkm@cindex windows, manipulating
120342660Smarkm
120442660SmarkmA @dfn{window} is a place to show the text of a node.  Windows have a
120542660Smarkmview area where the text of the node is displayed, and an associated
120642660Smarkm@dfn{mode line}, which briefly describes the node being viewed.
120742660Smarkm
120842660SmarkmGNU Info supports multiple windows appearing in a single screen; each
120942660Smarkmwindow is separated from the next by its modeline.  At any time, there
121042660Smarkmis only one @dfn{active} window, that is, the window in which the cursor
121142660Smarkmappears.  There are commands available for creating windows, changing
121242660Smarkmthe size of windows, selecting which window is active, and for deleting
121342660Smarkmwindows.
121442660Smarkm
121542660Smarkm@menu
121642660Smarkm* The Mode Line::               What appears in the mode line?
121742660Smarkm* Basic Windows::               Manipulating windows in Info.
121842660Smarkm* The Echo Area::               Used for displaying errors and reading input.
121942660Smarkm@end menu
122042660Smarkm
1221116525Sru@node The Mode Line
122242660Smarkm@section The Mode Line
122342660Smarkm
122442660SmarkmA @dfn{mode line} is a line of inverse video which appears at the bottom
122542660Smarkmof an Info window.  It describes the contents of the window just above
122642660Smarkmit; this information includes the name of the file and node appearing in
122742660Smarkmthat window, the number of screen lines it takes to display the node,
122842660Smarkmand the percentage of text that is above the top of the window.  It can
122942660Smarkmalso tell you if the indirect tags table for this Info file needs to be
123042660Smarkmupdated, and whether or not the Info file was compressed when stored on
123142660Smarkmdisk.
123242660Smarkm
123342660SmarkmHere is a sample mode line for a window containing an uncompressed file
123442660Smarkmnamed @file{dir}, showing the node @samp{Top}.
123542660Smarkm
123642660Smarkm@example
123742660Smarkm@group
123856160Sru-----Info: (dir)Top, 40 lines --Top-------------------------------------
123942660Smarkm            ^^   ^   ^^^        ^^
124042660Smarkm          (file)Node #lines    where
124142660Smarkm@end group
124242660Smarkm@end example
124342660Smarkm
124442660SmarkmWhen a node comes from a file which is compressed on disk, this is
124542660Smarkmindicated in the mode line with two small @samp{z}'s.  In addition, if
124642660Smarkmthe Info file containing the node has been split into subfiles, the name
124742660Smarkmof the subfile containing the node appears in the modeline as well:
124842660Smarkm
124942660Smarkm@example
125056160Sru--zz-Info: (emacs)Top, 291 lines --Top-- Subfile: emacs-1.Z-------------
125156160Sru@end example
125242660Smarkm
125356160SruTruncation of long lines (as opposed to wrapping them to the next
125456160Srudisplay line, @pxref{Scrolling Commands, toggle-wrap}) is indicated by a
125556160Sru@samp{$} at the left edge of the mode line:
125656160Sru
125756160Sru@example
125856160Sru--$--Info: (texinfo)Top, 480 lines --Top-- Subfile: texinfo-1-----------
125956160Sru@end example
126056160Sru
126142660SmarkmWhen Info makes a node internally, such that there is no corresponding
126242660Smarkminfo file on disk, the name of the node is surrounded by asterisks
126342660Smarkm(@samp{*}).  The name itself tells you what the contents of the window
126442660Smarkmare; the sample mode line below shows an internally constructed node
126542660Smarkmshowing possible completions:
126642660Smarkm
126742660Smarkm@example
126856160Sru-----Info: *Completions*, 7 lines --All---------------------------------
126942660Smarkm@end example
127042660Smarkm
1271116525Sru@node Basic Windows
127242660Smarkm@section Window Commands
127342660Smarkm
127442660SmarkmIt can be convenient to view more than one node at a time.  To allow
127542660Smarkmthis, Info can display more than one @dfn{window}.  Each window has its
127642660Smarkmown mode line (@pxref{The Mode Line}) and history of nodes viewed in that
127742660Smarkmwindow (@pxref{Node Commands, , @code{history-node}}).
127842660Smarkm
127942660Smarkm@table @asis
128056160Sru@item @kbd{C-x @key{o}} (@code{next-window})
128142660Smarkm@cindex windows, selecting
128242660Smarkm@kindex C-x o
128342660Smarkm@findex next-window
128442660SmarkmSelect the next window on the screen.  Note that the echo area can only be
128542660Smarkmselected if it is already in use, and you have left it temporarily.
128642660SmarkmNormally, @samp{C-x o} simply moves the cursor into the next window on
128742660Smarkmthe screen, or if you are already within the last window, into the first
128842660Smarkmwindow on the screen.  Given a numeric argument, @samp{C-x o} moves over
128942660Smarkmthat many windows.  A negative argument causes @samp{C-x o} to select
129042660Smarkmthe previous window on the screen.
129142660Smarkm
129256160Sru@item @kbd{M-x prev-window}
129342660Smarkm@findex prev-window
129442660SmarkmSelect the previous window on the screen.  This is identical to
129542660Smarkm@samp{C-x o} with a negative argument.
129642660Smarkm
129756160Sru@item @kbd{C-x @key{2}} (@code{split-window})
129842660Smarkm@cindex windows, creating
129942660Smarkm@kindex C-x 2
130042660Smarkm@findex split-window
130142660SmarkmSplit the current window into two windows, both showing the same node.
130242660SmarkmEach window is one half the size of the original window, and the cursor
130342660Smarkmremains in the original window.  The variable @code{automatic-tiling}
130442660Smarkmcan cause all of the windows on the screen to be resized for you
1305146515Sruautomatically (@pxref{Variables, , automatic-tiling}).
130642660Smarkm
130756160Sru@item @kbd{C-x @key{0}} (@code{delete-window})
130842660Smarkm@cindex windows, deleting
130942660Smarkm@kindex C-x 0
131042660Smarkm@findex delete-window
131142660SmarkmDelete the current window from the screen.  If you have made too many
131242660Smarkmwindows and your screen appears cluttered, this is the way to get rid of
131342660Smarkmsome of them.
131442660Smarkm
131556160Sru@item @kbd{C-x @key{1}} (@code{keep-one-window})
131642660Smarkm@kindex C-x 1
131742660Smarkm@findex keep-one-window
131842660SmarkmDelete all of the windows excepting the current one.
131942660Smarkm
132056160Sru@item @kbd{ESC @key{C-v}} (@code{scroll-other-window})
132142660Smarkm@kindex ESC C-v, in Info windows
132242660Smarkm@findex scroll-other-window
132342660SmarkmScroll the other window, in the same fashion that @samp{C-v} might
132442660Smarkmscroll the current window.  Given a negative argument, scroll the
1325146515Sru``other'' window backward.
132642660Smarkm
132756160Sru@item @kbd{C-x @key{^}} (@code{grow-window})
132842660Smarkm@kindex C-x ^
132942660Smarkm@findex grow-window
133042660SmarkmGrow (or shrink) the current window.  Given a numeric argument, grow
133142660Smarkmthe current window that many lines; with a negative numeric argument,
133242660Smarkmshrink the window instead.
133342660Smarkm
133456160Sru@item @kbd{C-x @key{t}} (@code{tile-windows})
133542660Smarkm@cindex tiling
133642660Smarkm@kindex C-x t
133742660Smarkm@findex tile-windows
133842660SmarkmDivide the available screen space among all of the visible windows.
133942660SmarkmEach window is given an equal portion of the screen in which to display
134042660Smarkmits contents.  The variable @code{automatic-tiling} can cause
134142660Smarkm@code{tile-windows} to be called when a window is created or deleted.
134242660Smarkm@xref{Variables, , @code{automatic-tiling}}.
134342660Smarkm@end table
134442660Smarkm
1345116525Sru@node The Echo Area
134642660Smarkm@section The Echo Area
134742660Smarkm@cindex echo area
134842660Smarkm
134942660SmarkmThe @dfn{echo area} is a one line window which appears at the bottom of
135042660Smarkmthe screen.  It is used to display informative or error messages, and to
135142660Smarkmread lines of input from you when that is necessary.  Almost all of the
135242660Smarkmcommands available in the echo area are identical to their Emacs
135342660Smarkmcounterparts, so please refer to that documentation for greater depth of
135442660Smarkmdiscussion on the concepts of editing a line of text.  The following
135542660Smarkmtable briefly lists the commands that are available while input is being
135642660Smarkmread in the echo area:
135742660Smarkm
135842660Smarkm@table @asis
135956160Sru@item @key{C-f} (@code{echo-area-forward})
136056160Sru@itemx @key{RIGHT} (an arrow key)
136156160Sru@itemx @key{M-h}, vi-like operation
136242660Smarkm@kindex C-f, in the echo area
136356160Sru@kindex RIGHT, in the echo area
136456160Sru@kindex M-h, in the echo area, vi-like operation
136542660Smarkm@findex echo-area-forward
136642660SmarkmMove forward a character.
136742660Smarkm
136856160Sru@item @key{C-b} (@code{echo-area-backward})
136956160Sru@itemx @key{LEFT} (an arrow key)
137056160Sru@itemx @key{M-l}, vi-like operation
137156160Sru@kindex LEFT, in the echo area
137242660Smarkm@kindex C-b, in the echo area
137356160Sru@kindex M-l, in the echo area, vi-like operation
137442660Smarkm@findex echo-area-backward
137542660SmarkmMove backward a character.
137642660Smarkm
137756160Sru@item @key{C-a} (@code{echo-area-beg-of-line})
137856160Sru@itemx @key{M-0}, vi-like operation
137942660Smarkm@kindex C-a, in the echo area
138056160Sru@kindex M-0, in the echo area, vi-like operation
138142660Smarkm@findex echo-area-beg-of-line
138242660SmarkmMove to the start of the input line.
138342660Smarkm
138456160Sru@item @key{C-e} (@code{echo-area-end-of-line})
138556160Sru@itemx @key{M-$}, vi-like operation
138642660Smarkm@kindex C-e, in the echo area
138756160Sru@kindex M-$, vi-like operation
138842660Smarkm@findex echo-area-end-of-line
138942660SmarkmMove to the end of the input line.
139042660Smarkm
139156160Sru@item @key{M-f} (@code{echo-area-forward-word})
139256160Sru@itemx @key{C-@key{RIGHT}} (DOS/Windows only)
139356160Sru@itemx @key{M-w}, vi-like operation
139442660Smarkm@kindex M-f, in the echo area
139556160Sru@kindex M-w, in the echo area, vi-like operation
139642660Smarkm@findex echo-area-forward-word
139742660SmarkmMove forward a word.
139842660Smarkm
139956160Sru@kindex C-RIGHT, in the echo area
140056160SruOn DOS/Windows, @kbd{C-@key{RIGHT}} moves forward by words.
140156160Sru
140256160Sru@item @key{M-b} (@code{echo-area-backward-word})
140356160Sru@itemx @key{C-@key{LEFT}} (DOS/Windows only)
140442660Smarkm@kindex M-b, in the echo area
140542660Smarkm@findex echo-area-backward-word
140642660SmarkmMove backward a word.
140742660Smarkm
140856160Sru@kindex C-LEFT, in the echo area
140956160SruOn DOS/Windows, @kbd{C-@key{LEFT}} moves backward by words.
141056160Sru
141156160Sru@item @key{C-d} (@code{echo-area-delete})
141256160Sru@itemx @key{M-x}, vi-like operation
141342660Smarkm@kindex C-d, in the echo area
141456160Sru@kindex M-x, in the echo area, vi-like operation
141542660Smarkm@findex echo-area-delete
141642660SmarkmDelete the character under the cursor.
141742660Smarkm
141856160Sru@item @key{DEL} (@code{echo-area-rubout})
141942660Smarkm@kindex DEL, in the echo area
142042660Smarkm@findex echo-area-rubout
142142660SmarkmDelete the character behind the cursor.
142242660Smarkm
142356160SruOn some keyboards, this key is designated @key{BS}, for
142456160Sru@samp{BackSpace}.  Those keyboards will usually bind @key{DEL} in the
142556160Sruecho area to @code{echo-area-delete}.
142656160Sru
142756160Sru@item @key{C-g} (@code{echo-area-abort})
142856160Sru@itemx @key{C-u}, vi-like operation
142942660Smarkm@kindex C-g, in the echo area
143056160Sru@kindex C-u, in the echo area, vi-like operation
143142660Smarkm@findex echo-area-abort
143256160SruCancel or quit the current operation.  If completion is being read, this
143356160Srucommand discards the text of the input line which does not match any
143456160Srucompletion.  If the input line is empty, it aborts the calling function.
143542660Smarkm
143656160Sru@item @key{RET} (@code{echo-area-newline})
143742660Smarkm@kindex RET, in the echo area
143842660Smarkm@findex echo-area-newline
143942660SmarkmAccept (or forces completion of) the current input line.
144042660Smarkm
144156160Sru@item @key{C-q} (@code{echo-area-quoted-insert})
144256160Sru@itemx @key{C-v}, vi-like operation
144342660Smarkm@kindex C-q, in the echo area
144456160Sru@kindex C-v, in the echo area, vi-like operation
144542660Smarkm@findex echo-area-quoted-insert
144642660SmarkmInsert the next character verbatim.  This is how you can insert control
144756160Srucharacters into a search string, for example, or the @samp{?} character
144856160Sruwhen Info prompts with completion.
144942660Smarkm
145042660Smarkm@item @var{printing character} (@code{echo-area-insert})
145142660Smarkm@kindex printing characters, in the echo area
145242660Smarkm@findex echo-area-insert
145356160SruInsert the character.  Characters that have their 8th bit set, and not
145456160Srubound to @samp{M-} commands, are also inserted verbatim; this is useful
145556160Srufor terminals which support Latin scripts.
145642660Smarkm
145756160Sru@item @key{M-TAB} (@code{echo-area-tab-insert})
145856160Sru@itemx @key{Shift-@key{TAB}} (on DOS/Windows only)
145942660Smarkm@kindex M-TAB, in the echo area
146056160Sru@kindex Shift-TAB, in the echo area
146142660Smarkm@findex echo-area-tab-insert
146242660SmarkmInsert a TAB character.
146342660Smarkm
146456160Sru@kindex Shift-TAB, in the echo area
146556160Sru@kindex BackTab, in the echo area
146656160SruOn DOS/Windows only, the @kbd{Shift-@key{TAB}} key is an alias for
146756160Sru@kbd{M-@key{TAB}}.  This key is sometimes called @samp{BackTab}.
146856160Sru
146956160Sru@item @key{C-t} (@code{echo-area-transpose-chars})
147042660Smarkm@kindex C-t, in the echo area
147142660Smarkm@findex echo-area-transpose-chars
147242660SmarkmTranspose the characters at the cursor.
147342660Smarkm@end table
147442660Smarkm
147542660SmarkmThe next group of commands deal with @dfn{killing}, and @dfn{yanking}
147656160Srutext@footnote{
147756160SruSome people are used to calling these operations @dfn{cut} and
1478114472Sru@dfn{paste}, respectively.}.   For an in-depth discussion of killing and
1479114472Sruyanking, see @ref{Killing, , Killing and Deleting, emacs, the GNU Emacs
1480114472SruManual}.
148142660Smarkm
148242660Smarkm@table @asis
148356160Sru@item @key{M-d} (@code{echo-area-kill-word})
148456160Sru@itemx @key{M-X}, vi-like operation
148542660Smarkm@kindex M-d, in the echo area
148656160Sru@kindex M-X, in the echo area, vi-like operation
148742660Smarkm@findex echo-area-kill-word
148842660SmarkmKill the word following the cursor.
148942660Smarkm
149056160Sru@item @key{M-DEL} (@code{echo-area-backward-kill-word})
149156160Sru@itemx @key{M-@key{BS}}
149242660Smarkm@kindex M-DEL, in the echo area
149342660Smarkm@findex echo-area-backward-kill-word
149442660SmarkmKill the word preceding the cursor.
149542660Smarkm
149656160Sru@kindex M-BS, in the echo area
149756160SruOn some keyboards, the @code{Backspace} key is used instead of
149856160Sru@code{DEL}, so @code{M-@key{Backspace}} has the same effect as
149956160Sru@code{M-@key{DEL}}.
150056160Sru
150156160Sru@item @key{C-k} (@code{echo-area-kill-line})
150242660Smarkm@kindex C-k, in the echo area
150342660Smarkm@findex echo-area-kill-line
150442660SmarkmKill the text from the cursor to the end of the line.
150542660Smarkm
150656160Sru@item @kbd{C-x @key{DEL}} (@code{echo-area-backward-kill-line})
150742660Smarkm@kindex C-x DEL, in the echo area
150842660Smarkm@findex echo-area-backward-kill-line
150942660SmarkmKill the text from the cursor to the beginning of the line.
151042660Smarkm
151156160Sru@item @key{C-y} (@code{echo-area-yank})
151242660Smarkm@kindex C-y, in the echo area
151342660Smarkm@findex echo-area-yank
151442660SmarkmYank back the contents of the last kill.
151542660Smarkm
151656160Sru@item @key{M-y} (@code{echo-area-yank-pop})
151742660Smarkm@kindex M-y, in the echo area
151842660Smarkm@findex echo-area-yank-pop
151942660SmarkmYank back a previous kill, removing the last yanked text first.
152042660Smarkm@end table
152142660Smarkm
152256160Sru@cindex completion
152342660SmarkmSometimes when reading input in the echo area, the command that needed
152442660Smarkminput will only accept one of a list of several choices.  The choices
152542660Smarkmrepresent the @dfn{possible completions}, and you must respond with one
152642660Smarkmof them.  Since there are a limited number of responses you can make,
152742660SmarkmInfo allows you to abbreviate what you type, only typing as much of the
152842660Smarkmresponse as is necessary to uniquely identify it.  In addition, you can
152942660Smarkmrequest Info to fill in as much of the response as is possible; this
153042660Smarkmis called @dfn{completion}.
153142660Smarkm
153242660SmarkmThe following commands are available when completing in the echo area:
153342660Smarkm
153442660Smarkm@table @asis
153556160Sru@item @key{TAB} (@code{echo-area-complete})
153656160Sru@itemx @key{SPC}
153742660Smarkm@kindex TAB, in the echo area
153842660Smarkm@kindex SPC, in the echo area
153942660Smarkm@findex echo-area-complete
154042660SmarkmInsert as much of a completion as is possible.
154142660Smarkm
154256160Sru@item @key{?} (@code{echo-area-possible-completions})
154342660Smarkm@kindex ?, in the echo area
154442660Smarkm@findex echo-area-possible-completions
154542660SmarkmDisplay a window containing a list of the possible completions of what
154642660Smarkmyou have typed so far.  For example, if the available choices are:
154742660Smarkm
154842660Smarkm@example
154942660Smarkm@group
155042660Smarkmbar
155142660Smarkmfoliate
155242660Smarkmfood
155342660Smarkmforget
155442660Smarkm@end group
155542660Smarkm@end example
155642660Smarkm
155742660Smarkm@noindent
155856160Sruand you have typed an @samp{f}, followed by @samp{?}, Info will pop up a
155956160Sruwindow showing a node called @samp{*Completions*} which lists the
156056160Srupossible completions like this:
156142660Smarkm
156242660Smarkm@example
156342660Smarkm@group
156456160Sru3 completions:
156556160Srufoliate         food
156642660Smarkmforget
156742660Smarkm@end group
156842660Smarkm@end example
156942660Smarkm
157042660Smarkm@noindent
157142660Smarkmi.e., all of the choices which begin with @samp{f}.  Pressing @key{SPC}
157242660Smarkmor @key{TAB} would result in @samp{fo} appearing in the echo area, since
157342660Smarkmall of the choices which begin with @samp{f} continue with @samp{o}.
157442660SmarkmNow, typing @samp{l} followed by @samp{TAB} results in @samp{foliate}
157542660Smarkmappearing in the echo area, since that is the only choice which begins
157642660Smarkmwith @samp{fol}.
157742660Smarkm
157856160Sru@item @key{ESC C-v} (@code{echo-area-scroll-completions-window})
157942660Smarkm@kindex ESC C-v, in the echo area
158042660Smarkm@findex echo-area-scroll-completions-window
1581146515SruScroll the completions window, if that is visible, or the ``other''
158242660Smarkmwindow if not.
158342660Smarkm@end table
158442660Smarkm
158593139Sru
158693139Sru@node Printing Nodes
158793139Sru@chapter Printing Nodes
158842660Smarkm@cindex printing
158942660Smarkm
159056160SruIn general, we recommend that you use @TeX{} to format the document and
159156160Sruprint sections of it, by running @code{tex} on the Texinfo source file.
159256160SruHowever, you may wish to print out the contents of a node as a quick
159356160Srureference document for later use, or if you don't have @TeX{} installed.
159456160SruInfo provides you with a command for doing this.
159542660Smarkm
159642660Smarkm@table @asis
159756160Sru@item @kbd{M-x print-node}
159842660Smarkm@findex print-node
159942660Smarkm@cindex INFO_PRINT_COMMAND, environment variable
160042660SmarkmPipe the contents of the current node through the command in the
160142660Smarkmenvironment variable @code{INFO_PRINT_COMMAND}.  If the variable does not
160256160Sruexist, the node is simply piped to @code{lpr} (on DOS/Windows, the
160356160Srudefault is to print the node to the local printer device, @file{PRN}).
160456160Sru
160556160Sru@cindex printing nodes to the local printer
160656160Sru@cindex local printer device
160756160SruThe value of @code{INFO_PRINT_COMMAND} may begin with the @samp{>}
160856160Srucharacter, as in @samp{>/dev/printer}, in which case Info treats the
160956160Srurest as the name of a file or a device.  Instead of piping to a command,
161056160SruInfo opens the file, writes the node contents, and closes the file,
161156160Sruunder the assumption that text written to that file will be printed by
161256160Sruthe underlying OS.
161342660Smarkm@end table
161442660Smarkm
161593139Sru
161693139Sru@node Miscellaneous Commands
161742660Smarkm@chapter Miscellaneous Commands
161842660Smarkm
161942660SmarkmGNU Info contains several commands which self-document GNU Info:
162042660Smarkm
162142660Smarkm@table @asis
162256160Sru@item @kbd{M-x describe-command}
162342660Smarkm@cindex functions, describing
162442660Smarkm@cindex commands, describing
162542660Smarkm@findex describe-command
162642660SmarkmRead the name of an Info command in the echo area and then display a
162742660Smarkmbrief description of what that command does.
162842660Smarkm
162956160Sru@item @kbd{M-x describe-key}
163042660Smarkm@cindex keys, describing
163142660Smarkm@findex describe-key
163242660SmarkmRead a key sequence in the echo area, and then display the name and
163342660Smarkmdocumentation of the Info command that the key sequence invokes.
163442660Smarkm
163556160Sru@item @kbd{M-x describe-variable}
163642660SmarkmRead the name of a variable in the echo area and then display a brief
163742660Smarkmdescription of what the variable affects.
163842660Smarkm
163956160Sru@item @kbd{M-x where-is}
164042660Smarkm@findex where-is
164142660SmarkmRead the name of an Info command in the echo area, and then display
164242660Smarkma key sequence which can be typed in order to invoke that command.
164342660Smarkm
164456160Sru@item @key{C-h} (@code{get-help-window})
164556160Sru@itemx @key{?}
164656160Sru@itemx @key{F1} (on DOS/Windows only)
164756160Sru@itemx h, vi-like operation
164842660Smarkm@kindex C-h
164942660Smarkm@kindex ?, in Info windows
165056160Sru@kindex F1
165156160Sru@kindex h, vi-like operation
165242660Smarkm@findex get-help-window
165342660SmarkmCreate (or Move into) the window displaying @code{*Help*}, and place
165442660Smarkma node containing a quick reference card into it.  This window displays
165542660Smarkmthe most concise information about GNU Info available.
165642660Smarkm
165756160Sru@item @key{h} (@code{get-info-help-node})
165856160Sru@itemx @key{M-h}, vi-like operation
165942660Smarkm@kindex h
166056160Sru@kindex M-h, vi-like operation
166142660Smarkm@findex get-info-help-node
166242660SmarkmTry hard to visit the node @code{(info)Help}.  The Info file
166342660Smarkm@file{info.texi} distributed with GNU Info contains this node.  Of
166442660Smarkmcourse, the file must first be processed with @code{makeinfo}, and then
166542660Smarkmplaced into the location of your Info directory.
166642660Smarkm@end table
166742660Smarkm
166842660SmarkmHere are the commands for creating a numeric argument:
166942660Smarkm
167042660Smarkm@table @asis
167156160Sru@item @key{C-u} (@code{universal-argument})
167242660Smarkm@cindex numeric arguments
167342660Smarkm@kindex C-u
167442660Smarkm@findex universal-argument
167542660SmarkmStart (or multiply by 4) the current numeric argument.  @samp{C-u} is
167642660Smarkma good way to give a small numeric argument to cursor movement or
167742660Smarkmscrolling commands; @samp{C-u C-v} scrolls the screen 4 lines, while
167856160Sru@samp{C-u C-u C-n} moves the cursor down 16 lines.  @samp{C-u} followed
167956160Sruby digit keys sets the numeric argument to the number thus typed:
168056160Sru@kbd{C-u 1 2 0} sets the argument to 120.
168142660Smarkm
168256160Sru@item @key{M-1} (@code{add-digit-to-numeric-arg})
168356160Sru@itemx @key{1}, vi-like operation
168456160Sru@itemx @key{M-2} @dots{} @key{M-9}
168556160Sru@itemx @key{2} @dots{} @key{9}, vi-like operation
168656160Sru@itemx @key{M-0}
168756160Sru@itemx @key{0}, vi-like operation
168856160Sru@kindex M-0 @dots{} M-9
168956160Sru@kindex 0 @dots{} 9, vi-like operation
169042660Smarkm@findex add-digit-to-numeric-arg
169142660SmarkmAdd the digit value of the invoking key to the current numeric
169242660Smarkmargument.  Once Info is reading a numeric argument, you may just type
169342660Smarkmthe digits of the argument, without the Meta prefix.  For example, you
169442660Smarkmmight give @samp{C-l} a numeric argument of 32 by typing:
169542660Smarkm
169642660Smarkm@example
169742660Smarkm@kbd{C-u 3 2 C-l}
169842660Smarkm@end example
169942660Smarkm
170042660Smarkm@noindent
170142660Smarkmor
170242660Smarkm
170342660Smarkm@example
170442660Smarkm@kbd{M-3 2 C-l}
170542660Smarkm@end example
170656160Sru
170756160Sru@item @key{M--} (@code{add-digit-to-numeric-arg}
170856160Sru@itemx @key{-}
170956160Sru@kindex M--
171056160Sru@kindex -
171156160Sru@cindex negative arguments
171256160Sru@cindex arguments, negative
171356160Sru@cindex numeric arguments, negative
171456160SruTo make a negative argument, type @kbd{-}.  Typing @kbd{-} alone makes a
171556160Srunegative argument with a value of -1.  If you continue to type digit or
171656160SruMeta-digit keys after @kbd{-}, the result is a negative number produced
171756160Sruby those digits.
171856160Sru
171956160Sru@kbd{-} doesn't work when you type in the echo area, because you need to
172056160Srube able to insert the @samp{-} character itself; use @kbd{M--} instead,
172156160Sruif you need to specify negative arguments in the echo area.
172242660Smarkm@end table
172342660Smarkm
172442660Smarkm@samp{C-g} is used to abort the reading of a multi-character key
172542660Smarkmsequence, to cancel lengthy operations (such as multi-file searches) and
172642660Smarkmto cancel reading input in the echo area.
172742660Smarkm
172842660Smarkm@table @asis
172956160Sru@item @key{C-g} (@code{abort-key})
173056160Sru@itemx @key{C-u}, vi-like operation
173142660Smarkm@cindex cancelling typeahead
173242660Smarkm@cindex cancelling the current operation
173342660Smarkm@kindex C-g, in Info windows
173456160Sru@kindex C-u cancels typeahead, vi-like operation
173542660Smarkm@findex abort-key
173642660SmarkmCancel current operation.
173742660Smarkm@end table
173842660Smarkm
173956160SruThe @samp{q} command of Info simply quits running Info.  Under
174056160Sru@samp{--vi-keys} (@pxref{--vi-keys}), you can also exit with @samp{:q}
174156160Sruor @samp{ZZ}.
174242660Smarkm
174342660Smarkm@table @asis
174456160Sru@item @key{q} (@code{quit})
174556160Sru@itemx @kbd{C-x C-c}
174656160Sru@itemx @kbd{:q}, vi-like operation
174756160Sru@itemx @kbd{ZZ}, vi-like operation
174842660Smarkm@cindex quitting
174942660Smarkm@kindex q
175056160Sru@kindex C-x C-c
175156160Sru@kindex ZZ, vi-like operation
175242660Smarkm@findex quit
175342660SmarkmExit GNU Info.
175442660Smarkm@end table
175542660Smarkm
175642660SmarkmIf the operating system tells GNU Info that the screen is 60 lines tall,
175742660Smarkmand it is actually only 40 lines tall, here is a way to tell Info that
175842660Smarkmthe operating system is correct.
175942660Smarkm
176042660Smarkm@table @asis
176156160Sru@item @kbd{M-x set-screen-height}
176242660Smarkm@findex set-screen-height
176342660Smarkm@cindex screen, changing the height of
176442660SmarkmRead a height value in the echo area and set the height of the
176542660Smarkmdisplayed screen to that value.
176642660Smarkm@end table
176742660Smarkm
176856160SruOn MS-DOS/MS-Windows, this command actually tries to change the
176956160Srudimensions of the visible screen to the value you type in the echo
177056160Sruarea.
177156160Sru
177242660SmarkmFinally, Info provides a convenient way to display footnotes which might
177342660Smarkmbe associated with the current node that you are viewing:
177442660Smarkm
177542660Smarkm@table @asis
177656160Sru@item @key{ESC C-f} (@code{show-footnotes})
177742660Smarkm@kindex ESC C-f
177842660Smarkm@findex show-footnotes
177942660Smarkm@cindex footnotes, displaying
178042660SmarkmShow the footnotes (if any) associated with the current node in another
178142660Smarkmwindow.  You can have Info automatically display the footnotes
178242660Smarkmassociated with a node when the node is selected by setting the variable
178342660Smarkm@code{automatic-footnotes}.  @xref{Variables, , @code{automatic-footnotes}}.
178442660Smarkm@end table
178542660Smarkm
178693139Sru
178793139Sru@node Variables
178842660Smarkm@chapter Manipulating Variables
178942660Smarkm
179042660SmarkmGNU Info contains several @dfn{variables} whose values are looked at by
179142660Smarkmvarious Info commands.  You can change the values of these variables,
179242660Smarkmand thus change the behavior of Info to more closely match your
179342660Smarkmenvironment and Info file reading manner.
179442660Smarkm
179593139SruThere are two ways to set the value of a variable: interactively, using
179693139Sruthe @code{set-variable} command described below, or in the @code{#var}
179793139Srusection of the @code{.infokey} file.  @xref{Custom Key Bindings}.
179893139Sru
179942660Smarkm@table @asis
180056160Sru@item @kbd{M-x set-variable}
180142660Smarkm@cindex variables, setting
180242660Smarkm@findex set-variable
180342660SmarkmRead the name of a variable, and the value for it, in the echo area and
180442660Smarkmthen set the variable to that value.  Completion is available when
180556160Srureading the variable name (@pxref{The Echo Area, completion}); often,
180656160Srucompletion is available when reading the value to give to the variable,
180756160Srubut that depends on the variable itself.  If a variable does @emph{not}
180856160Srusupply multiple choices to complete over, it expects a numeric value.
180942660Smarkm
181056160Sru@item @kbd{M-x describe-variable}
181142660Smarkm@cindex variables, describing
181242660Smarkm@findex describe-variable
181342660SmarkmRead the name of a variable in the echo area and then display a brief
181442660Smarkmdescription of what the variable affects.
181542660Smarkm@end table
181642660Smarkm
181742660SmarkmHere is a list of the variables that you can set in Info.
181842660Smarkm
181942660Smarkm@table @code
182042660Smarkm@item automatic-footnotes
182142660Smarkm@vindex automatic-footnotes
1822114472SruWhen set to @code{On}, footnotes appear and disappear automatically;
1823114472Sruelse, they appear at the bottom of the node text.  This variable is
1824114472Sru@code{Off} by default.  When a node is selected, a window containing
1825114472Sruthe footnotes which appear in that node is created, and the footnotes
1826114472Sruare displayed within the new window.  The window that Info creates to
1827114472Srucontain the footnotes is called @samp{*Footnotes*}.  If a node is
1828114472Sruselected which contains no footnotes, and a @samp{*Footnotes*} window
1829114472Sruis on the screen, the @samp{*Footnotes*} window is deleted.  Footnote
1830114472Sruwindows created in this fashion are not automatically tiled so that
1831114472Sruthey can use as little of the display as is possible.
183242660Smarkm
183342660Smarkm@item automatic-tiling
183442660Smarkm@vindex automatic-tiling
183542660SmarkmWhen set to @code{On}, creating or deleting a window resizes other
183642660Smarkmwindows.  This variable is @code{Off} by default.  Normally, typing
183742660Smarkm@samp{C-x 2} divides the current window into two equal parts.  When
183842660Smarkm@code{automatic-tiling} is set to @code{On}, all of the windows are
183942660Smarkmresized automatically, keeping an equal number of lines visible in each
184042660Smarkmwindow.  There are exceptions to the automatic tiling; specifically, the
184142660Smarkmwindows @samp{*Completions*} and @samp{*Footnotes*} are @emph{not}
184242660Smarkmresized through automatic tiling; they remain their original size.
184342660Smarkm
184442660Smarkm@item errors-ring-bell
184542660Smarkm@vindex errors-ring-bell
184642660SmarkmWhen set to @code{On}, errors cause the bell to ring.  The default
184742660Smarkmsetting of this variable is @code{On}.
184842660Smarkm
184942660Smarkm@item gc-compressed-files
185042660Smarkm@vindex gc-compressed-files
185142660SmarkmWhen set to @code{On}, Info garbage collects files which had to be
185242660Smarkmuncompressed.  The default value of this variable is @code{Off}.
185342660SmarkmWhenever a node is visited in Info, the Info file containing that node
185442660Smarkmis read into core, and Info reads information about the tags and nodes
185542660Smarkmcontained in that file.  Once the tags information is read by Info, it
185642660Smarkmis never forgotten.  However, the actual text of the nodes does not need
185742660Smarkmto remain in core unless a particular Info window needs it.  For
185842660Smarkmnon-compressed files, the text of the nodes does not remain in core when
185942660Smarkmit is no longer in use.  But de-compressing a file can be a time
186042660Smarkmconsuming operation, and so Info tries hard not to do it twice.
186142660Smarkm@code{gc-compressed-files} tells Info it is okay to garbage collect the
186242660Smarkmtext of the nodes of a file which was compressed on disk.
186342660Smarkm
186493139Sru@item ISO-Latin
186593139Sru@cindex ISO Latin characters
186693139Sru@vindex ISO-Latin
186793139SruWhen set to @code{On}, Info accepts and displays ISO Latin characters.
186893139SruBy default, Info assumes an ASCII character set.  @code{ISO-Latin} tells
186993139SruInfo that it is running in an environment where the European standard
187093139Srucharacter set is in use, and allows you to input such characters to
187193139SruInfo, as well as display them.
187242660Smarkm
187342660Smarkm@item scroll-behavior
187442660Smarkm@vindex scroll-behavior
187542660SmarkmControl what happens when forward scrolling is requested at the end of
187642660Smarkma node, or when backward scrolling is requested at the beginning of a
187742660Smarkmnode.  The default value for this variable is @code{Continuous}.  There
187842660Smarkmare three possible values for this variable:
187942660Smarkm
188042660Smarkm@table @code
188142660Smarkm@item Continuous
188242660SmarkmTry to get the first item in this node's menu, or failing that, the
188342660Smarkm@samp{Next} node, or failing that, the @samp{Next} of the @samp{Up}.
188442660SmarkmThis behavior is identical to using the @samp{]}
188542660Smarkm(@code{global-next-node}) and @samp{[} (@code{global-prev-node})
188642660Smarkmcommands.
188742660Smarkm
188842660Smarkm@item Next Only
188942660SmarkmOnly try to get the @samp{Next} node.
189042660Smarkm
189142660Smarkm@item Page Only
189242660SmarkmSimply give up, changing nothing.  If @code{scroll-behavior} is
189342660Smarkm@code{Page Only}, no scrolling command can change the node that is being
189442660Smarkmviewed.
189542660Smarkm@end table
189642660Smarkm
189742660Smarkm@item scroll-step
189842660Smarkm@vindex scroll-step
189942660SmarkmThe number of lines to scroll when the cursor moves out of the window.
190042660SmarkmScrolling happens automatically if the cursor has moved out of the
190142660Smarkmvisible portion of the node text when it is time to display.  Usually
190242660Smarkmthe scrolling is done so as to put the cursor on the center line of the
190342660Smarkmcurrent window.  However, if the variable @code{scroll-step} has a
190442660Smarkmnonzero value, Info attempts to scroll the node text by that many lines;
190542660Smarkmif that is enough to bring the cursor back into the window, that is what
190642660Smarkmis done.  The default value of this variable is 0, thus placing the
190742660Smarkmcursor (and the text it is attached to) in the center of the window.
1908146515SruSetting this variable to 1 causes a kind of ``smooth scrolling'' which
190942660Smarkmsome people prefer.
191042660Smarkm
191193139Sru@item show-index-match
191293139Sru@vindex show-index-match
191393139SruWhen set to @code{On}, the portion of the matched search string is
191493139Sruhighlighted in the message which explains where the matched search
191593139Srustring was found.  The default value of this variable is @code{On}.
191693139SruWhen Info displays the location where an index match was found,
191793139Sru(@pxref{Searching Commands, , @code{next-index-match}}), the portion of the
191893139Srustring that you had typed is highlighted by displaying it in the inverse
191993139Srucase from its surrounding characters.
192093139Sru
192193139Sru@item visible-bell
192293139Sru@vindex visible-bell
192393139SruWhen set to @code{On}, GNU Info attempts to flash the screen instead of
192493139Sruringing the bell.  This variable is @code{Off} by default.  Of course,
192593139SruInfo can only flash the screen if the terminal allows it; in the case
192693139Sruthat the terminal does not allow it, the setting of this variable has no
192793139Srueffect.  However, you can make Info perform quietly by setting the
192893139Sru@code{errors-ring-bell} variable to @code{Off}.
192993139Sru
193042660Smarkm@end table
193142660Smarkm
193242660Smarkm
193393139Sru@node Custom Key Bindings
193493139Sru@chapter Customizing Key Bindings and Variables
193542660Smarkm
193693139Sru@cindex default key bindings, overriding
193793139Sru@cindex overriding default key bindings
193893139Sru@cindex customizing key bindings
193993139Sru@cindex key bindings, customizing
194093139Sru@cindex infokey
194193139Sru@cindex .info
194293139Sru@cindex .infokey
194393139Sru@cindex _info file (MS-DOS)
194493139Sru
194593139SruFor those whose editor/pager of choice is not Emacs and who are not
194693139Sruentirely satisfied with the --vi-keys option (@pxref{--vi-keys}), GNU
194793139SruInfo provides a way to define different key-to-command bindings and
194893139Sruvariable settings from the defaults described in this document.
194993139Sru
195093139SruOn startup, GNU Info looks for a configuration file in the invoker's
195193139SruHOME directory called @file{.info}@footnote{Due to the limitations of
195293139SruDOS filesystems, the MS-DOS version of Info looks for a file
195393139Sru@file{_info} instead.  If the @env{HOME} variable is not defined, Info
195493139Sruadditionally looks in the current directory.}.  If it is present, and
195593139Sruappears to contain Info configuration data, and was created with the
195693139Srucurrent version of the @code{infokey} command, then Info adopts the
195793139Srukey bindings and variable settings contained therein.
195893139Sru
195993139SruThe @file{.info} file contains compact, non-textual data for reasons of
196093139Sruefficiency and because its design was lifted wholesale from the GNU Less
196193139Sruprogram, which also does it that way.  It must be created by compiling a
196293139Srutextual source file using the @code{infokey} command.
196393139Sru
196493139Sru@menu
196593139Sru* Invoking infokey::
196693139Sru* infokey source format::
196793139Sru@end menu
196893139Sru
196993139Sru
197093139Sru@node Invoking infokey
197193139Sru@section Invoking @command{infokey}
197293139Sru
197393139Sru@cindex invoking infokey
197493139Sru@cindex infokey, invoking
197593139Sru@cindex _infokey file (MS-DOS)
197693139Sru
197793139Sru@command{infokey} compiles a source file
197893139Sru(@file{$HOME/.infokey}@footnote{This file is named @file{_infokey} in
197993139Sruthe MS-DOS version, and is looked for in the current directory if
198093139Sru@env{HOME} is undefined.} by default) containing Info customizations
198193139Sruinto a binary format (@file{$HOME/.info} by default).  GNU Info reads
198293139Sruthe binary file at startup to override the default key bindings and
198393139Sruvariable definitions.  Synopsis:
198493139Sru
198593139Sru@example
198693139Sruinfokey [@var{option}@dots{}] [@var{input-file}]
198793139Sru@end example
198893139Sru
198993139SruBesides the standard @option{--help} and @option{--version}, the only
199093139Sruoption is @option{--output @var{file}}.  This tells @command{infokey} to
199193139Sruwrite the binary data to @var{file} instead of @file{$HOME/.info}.
199293139Sru
199393139Sru
199493139Sru@node infokey source format
199593139Sru@section @command{infokey} source format
199693139Sru
199793139Sru@cindex infokey source format
199893139Sru@cindex .infokey source format
199993139Sru@cindex format of .infokey source
200093139Sru
200193139SruThe format of the source file read by @command{infokey} is most easily
200293139Sruillustrated by example.  For instance, here is a sample @file{.infokey}
200393139Srusource file suitable for aficionados of @command{vi} or @command{less}:
200493139Sru
200593139Sru@example
200693139Sru#info
200793139Sruj       next-line
200893139Sruk       prev-line
200993139Srul       forward-char
201093139Sruh       backward-char
201193139Sru\kd     next-line
201293139Sru\ku     prev-line
201393139Sru\kr     forward-char
201493139Sru\kl     backward-char
201593139Sru\       scroll-forward
201693139Sru\kD     scroll-forward-page-only
201793139Srub       scroll-backward
201893139Sru\kU     scroll-backward-page-only
201993139Srug       beginning-of-node
202093139Sru\kh     beginning-of-node
202193139SruG       end-of-node
202293139Sru\ke     end-of-node
202393139Sru\t      select-reference-this-line
202493139Sru-       history-node
202593139Srun       next-node
202693139Srup       prev-node
202793139Sruu       up-node
202893139Srut       top-node
202993139Srud       dir-node
203093139Sru#var
203193139Sruscroll-step=1
203293139Sru@end example
203393139Sru
203493139SruThe source file consists of one or more @dfn{sections}.
203593139SruEach section starts with a line that identifies the type of section.
203693139SruPossible sections are:
203793139Sru
203893139Sru@table @code
203993139Sru@item #info
204093139SruKey bindings for Info windows.
204193139SruThe start of this section is indicated by a line containing just
204293139Sru@code{#info} by itself.  If this is the first section in the source
204393139Srufile, the @code{#info} line can be omitted.  The rest of this section
204493139Sruconsists of lines of the form:
204593139Sru
204693139Sru@example
204793139Sru@var{string} whitespace @var{action} [ whitespace [ # comment ] ] newline
204893139Sru@end example
204993139Sru
205093139SruWhitespace is any sequence of one or more spaces and/or tabs.  Comment
205193139Sruis any sequence of any characters, excluding newline.  @var{string} is
205293139Sruthe key sequence which invokes the action.  @var{action} is the name of
205393139Sruan Info command.  The characters in @var{string} are interpreted
205493139Sruliterally or prefixed by a caret (@code{^}) to indicate a control
205593139Srucharacter.  A backslash followed by certain characters specifies input
205693139Srukeystrokes as follows:
205793139Sru
205893139Sru@table @code
205993139Sru@item \b
206093139SruBackspace
206193139Sru@item \e
206293139SruEscape (ESC)
206393139Sru@item \n
206493139SruNewline
206593139Sru@item \r
206693139SruReturn
206793139Sru@item \t
206893139SruTab
206993139Sru@item \ku
207093139SruUp arrow
207193139Sru@item \kd
207293139SruDown arrow
207393139Sru@item \kl
207493139SruLeft arrow
207593139Sru@item \kr
207693139SruRight arrow
207793139Sru@item \kU
207893139SruPage Up
207993139Sru@item \kD
208093139SruPage Down
208193139Sru@item \kh
208293139SruHOME
208393139Sru@item \ke
208493139SruEND
208593139Sru@item \kx
208693139SruDelete (DEL)
208793139Sru@item \m@var{x}
208893139SruMeta-@var{x} where @var{x} is any character as described above.
208993139Sru@end table
209093139Sru
209193139SruBackslash followed by any other character indicates that character is to
209293139Srube taken literally.  Characters which must be preceded by a backslash
209393139Sruinclude caret, space, tab, and backslash itself.
209493139Sru
209593139Sru@item #echo-area
209693139SruKey bindings for the echo area.
209793139SruThe start of this section is indicated by a line containing just
209893139Sru@code{#echo-area} by itself.  The rest of this section has a syntax
209993139Sruidentical to that for the key definitions for the Info area, described
210093139Sruabove.
210193139Sru
210293139Sru@item #var
210393139SruVariable initializations.
210493139SruThe start of this section is indicated by a line containing just
210593139Sru@code{#var} by itself.  Following this line is a list of variable
210693139Sruassignments, one per line.  Each line consists of a variable name
210793139Sru(@xref{Variables},) followed by @code{=} followed by a value.
210893139SruThere may be no white space between the variable name and the @code{=},
210993139Sruand all characters following the @code{=}, including white space,
211093139Sruare included in the value.
211193139Sru@end table
211293139Sru
211393139SruBlank lines and lines starting with @code{#} are ignored, except for
211493139Sruthe special section header lines.
211593139Sru
211693139SruKey bindings defined in the @file{.info} file take precedence over GNU
211793139SruInfo's default key bindings, whether or not @samp{--vi-keys} is used.  A
211893139Srudefault key binding may be disabled by overriding it in the @file{.info}
211993139Srufile with the action @code{invalid}.  In addition, @emph{all} default
212093139Srukey bindings can be disabled by adding this line @emph{anywhere} in the
212193139Srurelevant section:
212293139Sru
212393139Sru@example
212493139Sru#stop
212593139Sru@end example
212693139Sru
212793139SruThis will cause GNU Info to ignore all the default key commands for that
212893139Srusection.
212993139Sru
213093139SruBeware: @code{#stop} can be dangerous.  Since it disables all default
213193139Srukey bindings, you must supply enough new key bindings to enable all
213293139Srunecessary actions.  Failure to bind any key to the @code{quit} command,
213393139Srufor example, can lead to frustration.
213493139Sru
213593139SruThe order in which key bindings are defined in the @file{.info} file is
213693139Srunot important, except that the command summary produced by the
213793139Sru@code{get-help-window} command only displays the @emph{first} key that
213893139Sruis bound to each command.
213993139Sru
214093139Sru
214142660Smarkm@c the following is incomplete
214242660Smarkm@ignore
214342660Smarkm@c node Info for Sys Admins
214442660Smarkm@c chapter Info for System Administrators
214542660Smarkm
214642660SmarkmThis text describes some common ways of setting up an Info hierarchy
214742660Smarkmfrom scratch, and details the various options that are available when
214842660Smarkminstalling Info.  This text is designed for the person who is installing
214942660SmarkmGNU Info on the system; although users may find the information present
215042660Smarkmin this section interesting, none of it is vital to understanding how to
215142660Smarkmuse GNU Info.
215242660Smarkm
215342660Smarkm@menu
215442660Smarkm* Setting the INFOPATH::        Where are my Info files kept?
215542660Smarkm* Editing the DIR node::        What goes in `DIR', and why?
215642660Smarkm* Storing Info files::          Alternate formats allow flexibility in setups.
215742660Smarkm* Using `localdir'::            Building DIR on the fly.
215842660Smarkm* Example setups::              Some common ways to organize Info files.
215942660Smarkm@end menu
216042660Smarkm
216142660Smarkm@c node Setting the INFOPATH
216242660Smarkm@c section Setting the INFOPATH
216342660Smarkm
216442660SmarkmWhere are my Info files kept?
216542660Smarkm
216642660Smarkm@c node Editing the DIR node
216742660Smarkm@c section Editing the DIR node
216842660Smarkm
216942660SmarkmWhat goes in `DIR', and why?
217042660Smarkm
217142660Smarkm@c node Storing Info files
217242660Smarkm@c section Storing Info files
217342660Smarkm
217442660SmarkmAlternate formats allow flexibility in setups.
217542660Smarkm
217642660Smarkm@c node Using `localdir'
217742660Smarkm@c section Using `localdir'
217842660Smarkm
217942660SmarkmBuilding DIR on the fly.
218042660Smarkm
218142660Smarkm@c node Example setups
218242660Smarkm@c section Example setups
218342660Smarkm
218442660SmarkmSome common ways to organize Info files.
218542660Smarkm@end ignore
218642660Smarkm
218742660Smarkm
2188100513Sru@node Copying This Manual
2189100513Sru@appendix Copying This Manual
2190100513Sru
2191100513Sru@menu
2192100513Sru* GNU Free Documentation License::  License for copying this manual.
2193100513Sru@end menu
2194100513Sru
2195100513Sru@include fdl.texi
2196100513Sru
2197100513Sru
219893139Sru@node Index
219993139Sru@appendix Index
220093139Sru
220142660Smarkm@printindex cp
220242660Smarkm
220342660Smarkm@bye
2204