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