1\input texinfo.tex @c -*-texinfo-*- 2@comment $Id: info-stnd.texi,v 1.9 2004/12/14 16:58:15 karl Exp $ 3@c We must \input texinfo.tex instead of texinfo, otherwise make 4@c distcheck in the Texinfo distribution fails, because the texinfo Info 5@c file is made first, and texi2dvi must include . first in the path. 6@comment %**start of header 7@setfilename info-stnd.info 8@include version-stnd.texi 9@settitle GNU Info @value{VERSION} 10@syncodeindex vr cp 11@syncodeindex fn cp 12@syncodeindex ky cp 13@comment %**end of header 14 15@copying 16This manual is for GNU Info (version @value{VERSION}, @value{UPDATED}), 17a program for viewing documents in Info format (usually created from 18Texinfo source files). 19 20Copyright @copyright{} 1992, 1993, 1996, 1997, 1998, 1999, 2001, 2002, 212003, 2004 Free Software Foundation, Inc. 22 23@quotation 24Permission is granted to copy, distribute and/or modify this document 25under the terms of the GNU Free Documentation License, Version 1.1 or 26any later version published by the Free Software Foundation; with no 27Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' 28and with the Back-Cover Texts as in (a) below. A copy of the 29license is included in the section entitled ``GNU Free Documentation 30License.'' 31 32(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify 33this GNU Manual, like GNU software. Copies published by the Free 34Software Foundation raise funds for GNU development.'' 35@end quotation 36@end copying 37 38@dircategory Texinfo documentation system 39@direntry 40* info standalone: (info-stnd). Read Info documents without Emacs. 41* infokey: (info-stnd)Invoking infokey. Compile Info customizations. 42@end direntry 43 44@titlepage 45@title GNU Info 46@subtitle for version @value{VERSION}, @value{UPDATED} 47@author Brian J. Fox (bfox@@gnu.org) 48@page 49@vskip 0pt plus 1filll 50@insertcopying 51@end titlepage 52 53@contents 54 55@ifnottex 56@node Top 57@top GNU Info 58 59@insertcopying 60 61This documentation is different from the documentation for the Info 62reader that is part of GNU Emacs. If you do not know how to use Info, 63but have a working Info reader, you should read the Emacs documentation 64first, as it includes more background information and a thorough tutorial. 65@end ifnottex 66 67@menu 68* What is Info:: What is Info? 69* Invoking Info:: Options you can pass on the command line. 70* Cursor Commands:: Commands which move the cursor within a node. 71* Scrolling Commands:: Commands for reading the text within a node. 72* Node Commands:: Commands for selecting a new node. 73* Searching Commands:: Commands for searching an Info file. 74* Xref Commands:: Commands for selecting cross references. 75* Window Commands:: Commands which manipulate multiple windows. 76* Printing Nodes:: How to print out the contents of a node. 77* Miscellaneous Commands:: A few commands that defy categories. 78* Variables:: How to change the default behavior of Info. 79* Custom Key Bindings:: How to define your own key-to-command bindings. 80* Copying This Manual:: The GNU Free Documentation License. 81* Index:: Global index containing keystrokes, 82 command names, variable names, 83 and general concepts. 84@end menu 85 86 87@node What is Info 88@chapter What is Info? 89 90@dfn{Info} is a program which is used to view Info files on an ASCII 91terminal. @dfn{Info files} are the result of processing Texinfo files 92with the program @code{makeinfo} or with one of the Emacs commands, such 93as @code{M-x texinfo-format-buffer}. Texinfo itself is a documentation 94system that uses a single source file to produce both on-line 95information and printed output. You can typeset and print the files 96that you read in Info. 97 98 99@node Invoking Info 100@chapter Invoking Info 101 102@cindex Info, invoking 103@cindex invoking Info 104@cindex command line options 105@cindex options, command line 106@cindex arguments, command line 107 108GNU Info accepts several options to control the initial node being 109viewed, and to specify which directories to search for Info files. Here 110is a template showing an invocation of GNU Info from the shell: 111 112@example 113info [@var{option}]@dots{} [@var{menu-item}@dots{}] 114@end example 115 116The program accepts the following options: 117 118@table @code 119@anchor{--apropos} 120@item --apropos=@var{string} 121@cindex Searching all indices 122@cindex Info files@r{, searching all indices} 123@cindex Apropos@r{, in Info files} 124Specify a string to search in every index of every Info file installed 125on your system. Info looks up the named @var{string} in all the indices 126it can find, prints the results to standard output, and then exits. If 127you are not sure which Info file explains certain issues, this option is 128your friend. Note that if your system has a lot of Info files 129installed, searching all of them might take some time. 130 131You can invoke the apropos command from inside Info; see 132@ref{Searching Commands}. 133 134@cindex directory path 135@item --directory @var{directory-path} 136@itemx -d @var{directory-path} 137Prepend @var{directory-path} to the list of directory paths searched 138when Info needs to find a file. You may issue @code{--directory} 139multiple times; once for each directory which contains Info files. The 140list of directories searched by Info is constructed from the value of 141the environment variable @code{INFOPATH}; @code{--directory} causes the 142named @var{directory-path} to be prepended to that list. The value of 143@code{INFOPATH} is a list of directories usually separated by a colon; 144on MS-DOS/MS-Windows systems, the semicolon is used. If you do not 145define @code{INFOPATH}, Info uses a default path defined when Info was 146built as the initial list of directories. If the value of 147@code{INFOPATH} ends with a colon (or semicolon on MS-DOS/MS-Windows), 148the initial list of directories is constructed by appending the 149build-time default to the value of @code{INFOPATH}. 150 151@cindex keystrokes, recording 152@cindex remembering user keystrokes 153@item --dribble=@var{dribble-file} 154Specify a file where all user keystrokes will be recorded. This file 155can be used later to replay the same sequence of commands, see the 156@samp{--restore} option below. 157 158@item --file @var{filename} 159@itemx -f @var{filename} 160@cindex Info file, selecting 161Specify a particular Info file to visit. By default, Info visits 162the file @code{dir}; if you use this option, Info will start with 163@code{(@var{filename})Top} as the first file and node. 164 165@cindex relative Info file names 166@cindex file names, relative 167@cindex Info files, relative 168If @var{filename} is an absolute file name, or begins with @file{./} or 169@file{../}, Info looks for @var{filename} only in the directory of the 170specified @var{filename}, and adds the directory of @var{filename} to 171the value of @code{INFOPATH}. In contrast, if @var{filename} is in the 172form of a relative file name, but without the @file{./} or @file{../} 173prefix, Info will only look for it in the directories specified in 174@code{INFOPATH}. In other words, Info does @emph{not} treat file names 175which lack @file{./} and @file{../} prefix as relative to the current 176directory. 177 178@cindex compressed Info files 179@cindex files, compressed 180@cindex Info files, compressed 181In every directory Info tries, if @var{filename} is not found, Info 182looks for it with a number of known extensions of Info files@footnote{ 183@file{.info}, @file{-info}, @file{/index}, and @file{.inf}.}. For every 184known extension, Info looks for a compressed file, if a regular file 185isn't found. Info supports files compressed with @code{gzip}, 186@code{bzip2}, @code{compress} and @code{yabba} programs; it calls 187@code{gunzip}, @code{bunzip2}, @code{uncompress} and @code{unyabba}, 188accordingly, to decompress such files. Compressed Info files are 189assumed to have @file{.z}, @file{.gz}, @file{.bz2}, @file{.Z}, or 190@file{.Y} extensions, possibly in addition to one of the known Info 191files extensions@footnote{The MS-DOS version allows for the Info 192extension, such as @code{.inf}, and the short compressed file 193extensions, such as @file{.z} and @file{.gz}, to be merged into a single 194extension, since DOS doesn't allow more than a single dot in the 195basename of a file. Thus, on MS-DOS, if Info looks for @file{bison}, 196file names like @file{bison.igz} and @file{bison.inz} will be found and 197decompressed by @code{gunzip}.}. 198 199@item --help 200@itemx -h 201Produces a relatively brief description of the available Info options. 202 203@item --index-search @var{string} 204@cindex index search, selecting from the command line 205@cindex online help, using Info as 206After processing all command-line arguments, go to the index in the Info 207file and search for index entries which match @var{string}. If such an 208entry is found, the Info session begins with displaying the node pointed 209to by the first matching index entry; press @kbd{,} to step through the 210rest of the matching entries. If no such entry exists, print @samp{no 211entries found} and exit with nonzero status. This can be used from 212another program as a way to provide online help, or as a quick way of 213starting to read an Info file at a certain node when you don't know the 214exact name of that node. 215 216This command can also be invoked from inside Info; see @ref{Searching 217Commands}. 218 219@item --node @var{nodename} 220@itemx -n @var{nodename} 221@cindex node, selecting from the command line 222Specify a particular node to visit in the initial file that Info 223loads. This is especially useful in conjunction with 224@code{--file}@footnote{Of course, you can specify both the file and node 225in a @code{--node} command; but don't forget to escape the open and 226close parentheses and whitespace from the shell as in: @code{info --node 227"(emacs)Buffers"}.}. You may specify @code{--node} multiple times; for 228an interactive Info, each @var{nodename} is visited in its own window, 229for a non-interactive Info (such as when @code{--output} is given) each 230@var{nodename} is processed sequentially. 231 232@item --output @var{filename} 233@itemx -o @var{filename} 234@cindex file, outputting to 235@cindex outputting to a file 236Specify @var{filename} as the name of a file to which to direct output. 237Each node that Info visits will be output to @var{filename} instead of 238interactively viewed. A value of @code{-} for @var{filename} specifies 239the standard output. 240 241@cindex colors in documents 242@cindex ANSI escape sequences in documents 243@item --raw-escapes 244@itemx --no-raw-escapes 245@itemx -R 246Do not remove ANSI escape sequences from documents. Some versions of 247Groff, the GNU document formatter, produce man pages with ANSI escape 248sequences for bold, italics, and underlined characters, and for 249colorized text. By default, Info lets those escape sequences pass 250through directly to the terminal. If your terminal does not support 251these escapes, use @code{--no-raw-escapes} to make Info remove them. 252 253@cindex replaying recorded keystrokes 254@item --restore=@var{dribble-file} 255Read keystrokes from @var{dribble-file}, presumably recorded during 256previous Info session (see the description of the @samp{--dribble} 257option above). When the keystrokes in the files are all read, Info 258reverts its input to the usual interactive operation. 259 260@anchor{--show-options} 261@cindex command-line options, how to find 262@cindex invocation description, how to find 263@item --show-options 264@itemx --usage 265@itemx -O 266This option causes Info to look for the node that describes how to 267invoke the program and its command-line options, and begin the session 268by displaying that node. It is provided to make it easier to find the 269most important usage information in a manual without the need to wade 270through complex menu hierarchies. The effect is similar to the 271@code{M-x goto-invocation} command (@pxref{goto-invocation}) from inside 272Info. 273 274@cindex speech synthesizers 275@item --speech-friendly 276@itemx -b 277On MS-DOS/MS-Windows only, this option causes Info to use standard file 278I/O functions for screen writes. (By default, Info uses direct writes 279to the video memory on these systems, for faster operation and colored 280display support.) This allows the speech synthesizers used by blind 281persons to catch the output and convert it to audible speech. 282 283@item --subnodes 284@cindex @code{--subnodes}, command line option 285This option only has meaning when given in conjunction with 286@code{--output}. It means to recursively output the nodes appearing in 287the menus of each node being output. Menu items which resolve to 288external Info files are not output, and neither are menu items which are 289members of an index. Each node is only output once. 290 291@item --version 292@cindex version information 293Prints the version information of Info and exits. 294 295@anchor{--vi-keys} 296@cindex vi-like key bindings 297@cindex Less-like key bindings 298@item --vi-keys 299This option binds functions to keys differently, to emulate the key 300bindings of @code{vi} and Less. The default key bindings are generally 301modeled after Emacs. 302(@xref{Custom Key Bindings}, 303for a more general way of altering GNU Info's key bindings.) 304 305@cindex Info manual location 306@cindex Where is an Info manual? 307@item --where 308@itemx --location 309@itemx -w 310Show the filename that would be read and exit, instead of actually 311reading it and starting Info. 312 313@item @var{menu-item} 314@cindex menu, following 315@anchor{command-line menu items} 316Info treats its remaining arguments as the names of menu items. The 317first argument is a menu item in the initial node visited (generally 318@code{dir}), the second argument is a menu item in the first argument's 319node, etc. You can easily move to the node of your choice by specifying 320the menu names which describe the path to that node. For example, 321 322@example 323info emacs buffers 324@end example 325 326@noindent 327first selects the menu item @samp{Emacs} in the node @samp{(dir)Top}, 328and then selects the menu item @samp{Buffers} in the node 329@samp{(emacs)Top}. 330@end table 331 332To avoid searching the @file{dir} files and just show some arbitrary 333file, use @samp{-f} and the filename, as in @samp{info -f ./foo.info}. 334 335The index search and the search for the node which describes program 336invocation and command-line options begins @emph{after} processing all 337the command-line menu items. Therefore, the Info file searched for the 338index or the invocation node is the file where Info finds itself after 339following all the menu items given on the command line. This is so 340@samp{info emacs --show-options} does what you'd expect. 341 342@c FIXME: the feature with lowercasing the file name isn't documented 343 344 345@node Cursor Commands 346@chapter Moving the Cursor 347@cindex cursor, moving 348@cindex moving the cursor 349 350Many people find that reading screens of text page by page is made 351easier when one is able to indicate particular pieces of text with 352some kind of pointing device. Since this is the case, GNU Info (both 353the Emacs and standalone versions) have several commands which allow 354you to move the cursor about the screen. The notation used in this 355manual to describe keystrokes is identical to the notation used within 356the Emacs manual, and the GNU Readline manual. @xref{User Input,,, 357emacs, the GNU Emacs Manual}, if you are unfamiliar with the 358notation.@footnote{Here's a short summary. @kbd{C-@var{x}} means 359press the @kbd{CTRL} key and the key @var{x}. @kbd{M-@var{x}} means 360press the @kbd{META} key and the key @var{x}. On many terminals th 361@kbd{META} key is known as the @kbd{ALT} key. @kbd{SPC} is the space 362bar. The other keys are usually called by the names imprinted on 363them.} 364 365The following table lists the basic cursor movement commands in Info. 366Each entry consists of the key sequence you should type to execute the 367cursor movement, the @code{M-x}@footnote{@code{M-x} is also a command; it 368invokes @code{execute-extended-command}. @xref{M-x, , Executing an 369extended command, emacs, the GNU Emacs Manual}, for more detailed 370information.} command name (displayed in parentheses), and a short 371description of what the command does. All of the cursor motion commands 372can take a @dfn{numeric} argument (see @ref{Miscellaneous Commands, 373@code{universal-argument}, to find out how to supply them}. With a 374numeric argument, the motion commands are simply executed that 375many times; for example, a numeric argument of 4 given to 376@code{next-line} causes the cursor to move down 4 lines. With a 377negative numeric argument, the motion is reversed; an argument of -4 378given to the @code{next-line} command would cause the cursor to move 379@emph{up} 4 lines. 380 381@table @asis 382@item @key{C-n} (@code{next-line}) 383@itemx @key{DOWN} (an arrow key) 384@kindex C-n 385@kindex DOWN (an arrow key) 386@findex next-line 387Move the cursor down to the next line. 388 389@item @key{C-p} (@code{prev-line}) 390@itemx @key{UP} (an arrow key) 391@kindex C-p 392@kindex UP (an arrow key) 393@findex prev-line 394Move the cursor up to the previous line. 395 396@item @key{C-a} (@code{beginning-of-line}) 397@itemx @key{Home} (on DOS/Windows only) 398@kindex C-a, in Info windows 399@kindex Home 400@findex beginning-of-line 401Move the cursor to the start of the current line. 402 403@item @key{C-e} (@code{end-of-line}) 404@itemx @key{End} (on DOS/Windows only) 405@kindex C-e, in Info windows 406@kindex End 407@findex end-of-line 408Move the cursor to the end of the current line. 409 410@item @key{C-f} (@code{forward-char}) 411@itemx @key{RIGHT} (an arrow key) 412@kindex C-f, in Info windows 413@kindex RIGHT (an arrow key) 414@findex forward-char 415Move the cursor forward a character. 416 417@item @key{C-b} (@code{backward-char}) 418@itemx @key{LEFT} (an arrow key) 419@kindex C-b, in Info windows 420@kindex LEFT (an arrow key) 421@findex backward-char 422Move the cursor backward a character. 423 424@item @key{M-f} (@code{forward-word}) 425@itemx @kbd{C-@key{RIGHT}} (on DOS/Windows only) 426@kindex M-f, in Info windows 427@kindex C-RIGHT 428@findex forward-word 429Move the cursor forward a word. 430 431@item @key{M-b} (@code{backward-word}) 432@itemx @kbd{C-@key{LEFT}} (on DOS/Windows only) 433@kindex M-b, in Info windows 434@kindex C-LEFT 435@findex backward-word 436Move the cursor backward a word. 437 438@item @key{M-<} (@code{beginning-of-node}) 439@itemx @key{C-@key{Home}} (on DOS/Windows only) 440@itemx @key{b} 441@itemx @key{M-b}, vi-like operation 442@kindex b, in Info windows 443@kindex M-< 444@kindex C-Home 445@kindex M-b, vi-like operation 446@findex beginning-of-node 447Move the cursor to the start of the current node. 448 449@item @key{M->} (@code{end-of-node}) 450@itemx @key{C-@key{End}} (on DOS/Windows only) 451@itemx @key{e} 452@kindex M-> 453@kindex e, in Info windows 454@kindex C-End 455@findex end-of-node 456Move the cursor to the end of the current node. 457 458@item @key{M-r} (@code{move-to-window-line}) 459@kindex M-r 460@findex move-to-window-line 461Move the cursor to a specific line of the window. Without a numeric 462argument, @code{M-r} moves the cursor to the start of the line in the 463center of the window. With a numeric argument of @var{n}, @code{M-r} 464moves the cursor to the start of the @var{n}th line in the window. 465@end table 466 467 468@node Scrolling Commands 469@chapter Moving Text Within a Window 470@cindex scrolling 471 472Sometimes you are looking at a screenful of text, and only part of the 473current paragraph you are reading is visible on the screen. The 474commands detailed in this section are used to shift which part of the 475current node is visible on the screen. 476 477Scrolling commands are bound differently when @samp{--vi-keys} operation 478is in effect (@pxref{--vi-keys}). These key bindings are designated 479with ``vi-like operation''. 480 481@table @asis 482@item @key{SPC} (@code{scroll-forward}) 483@kindex SPC, in Info windows 484@findex scroll-forward 485Shift the text in this window up. That is, show more of the node which 486is currently below the bottom of the window. With a numeric argument, 487show that many more lines at the bottom of the window; a numeric 488argument of 4 would shift all of the text in the window up 4 lines 489(discarding the top 4 lines), and show you four new lines at the bottom 490of the window. Without a numeric argument, @key{SPC} takes the bottom 491two lines of the window and places them at the top of the window, 492redisplaying almost a completely new screenful of lines. If you are at 493the end of a node, @key{SPC} takes you to the ``next'' node, so that you can 494read an entire manual from start to finish by repeating @key{SPC}. 495 496The default scroll size is one screen-full, but it can be changed by 497invoking the (@code{scroll-forward-page-only-set-window}) command, 498@samp{z} under @samp{--vi-keys}, with a numeric argument. 499 500@item @key{NEXT} (an arrow key) (@code{scroll-forward-page-only}) 501@itemx @key{C-v} 502@itemx @key{C-f}, vi-like operation 503@itemx @key{f}, vi-like operation 504@itemx @key{M-SPC}, vi-like operation 505@kindex NEXT 506@kindex C-v 507@kindex C-f, vi-like operation 508@kindex f, vi-like operation 509@kindex M-SPC, vi-like operation 510@findex scroll-forward-page-only 511Shift the text in this window up. This is identical to the @key{SPC} 512operation above, except that it never scrolls beyond the end of the 513current node. 514 515@kindex PageDown 516The @key{NEXT} key is known as the @key{PageDown} key on some 517keyboards. 518 519@item @key{z} (@code{scroll-forward-page-only-set-window}, vi-like operation) 520@kindex z, vi-like operation 521@findex scroll-forward-page-only-set-window 522Scroll forward, like with @key{NEXT}, but if a numeric argument is 523specified, it becomes the default scroll size for subsequent 524@code{scroll-forward} and @code{scroll-backward} commands and their 525ilk. 526 527@item @key{DEL} (@code{scroll-backward}) 528@kindex DEL, in Info windows 529@findex scroll-backward 530Shift the text in this window down. The inverse of 531@code{scroll-forward}. 532If you are at the start of a node, @key{DEL} takes you to the 533``previous'' node, so that you can read an entire manual from finish to 534start by repeating @key{DEL}. The default scroll size can be changed by 535invoking the (@code{scroll-backward-page-only-set-window}) command, 536@samp{w} under @samp{--vi-keys}, with a numeric argument. 537 538@itemx @key{PREVIOUS} (arrow key) (@code{scroll-backward-page-only}) 539@itemx @key{PRIOR} (arrow key) 540@itemx @key{M-v} 541@itemx @key{b}, vi-like operation 542@itemx @key{C-b}, vi-like operation 543@kindex PREVIOUS 544@kindex M-v 545@kindex b, vi-like operation 546@kindex C-b, vi-like operation 547@findex scroll-backward-page-only 548Shift the text in this window down. The inverse of 549@code{scroll-forward-page-only}. Does not scroll beyond the start of 550the current node. The default scroll size can be changed by invoking 551the(@code{scroll-backward-page-only-set-window}) command, @samp{w} under 552@samp{--vi-keys}, with a numeric argument. 553 554@item @key{w} (@code{scroll-backward-page-only-set-window}, vi-like operation) 555@kindex w, vi-like operation 556@findex scroll-backward-page-only-set-window 557Scroll backward, like with @key{PREVIOUS}, but if a numeric argument is 558specified, it becomes the default scroll size for subsequent 559@code{scroll-forward} and @code{scroll-backward} commands. 560 561@item @key{C-n} (@code{down-line}, vi-like operation) 562@itemx @key{C-e}, vi-like operation 563@itemx @key{RET}, vi-like operation 564@itemx @key{LFD}, vi-like operation 565@itemx @key{DOWN}, vi-like operation 566@kindex C-n, vi-like operation 567@kindex C-e, vi-like operation 568@kindex RET, vi-like operation 569@kindex LFD, vi-like operation 570@kindex DOWN, vi-like operation 571@findex down-line 572Scroll forward by one line. With a numeric argument, scroll forward 573that many lines. 574 575@item @key{C-p} (@code{up-line}, vi-like operation) 576@itemx @key{UP}, vi-like operation 577@itemx @key{y}, vi-like operation 578@itemx @key{k}, vi-like operation 579@itemx @key{C-k}, vi-like operation 580@itemx @key{C-y}, vi-like operation 581@kindex C-p, vi-like operation 582@kindex UP, vi-like operation 583@kindex y, vi-like operation 584@kindex k, vi-like operation 585@kindex C-k, vi-like operation 586@kindex C-y, vi-like operation 587@findex up-line 588Scroll backward one line. With a numeric argument, scroll backward that 589many lines. 590 591@item @key{d} (@code{scroll-half-screen-down}, vi-like operation) 592@itemx @key{C-d}, vi-like operation 593@kindex d, vi-like operation 594@kindex C-d, vi-like operation 595@findex scroll-half-screen-down 596Scroll forward by half of the screen size. With a numeric argument, 597scroll that many lines. If an argument is specified, it becomes the new 598default number of lines to scroll for subsequent @samp{d} and @samp{u} 599commands. 600 601@item @key{u} (@code{scroll-half-screen-up}, vi-like operation) 602@itemx @key{C-u}, vi-like operation 603@kindex u, vi-like operation 604@kindex C-u, vi-like operation 605@findex scroll-half-screen-up 606Scroll back by half of the screen size. With a numeric argument, 607scroll that many lines. If an argument is specified, it becomes the new 608default number of lines to scroll for subsequent @samp{u} and @samp{d} 609commands. 610@end table 611 612@cindex scrolling through node structure 613The @code{scroll-forward} and @code{scroll-backward} commands can also 614move forward and backward through the node structure of the file. If 615you press @key{SPC} while viewing the end of a node, or @key{DEL} while 616viewing the beginning of a node, what happens is controlled by the 617variable @code{scroll-behavior}. @xref{Variables, 618@code{scroll-behavior}}, for more information. 619 620The @code{scroll-forward-page-only} and @code{scroll-backward-page-only} 621commands never scroll beyond the current node. 622 623@kindex PageUp 624The @key{PREVIOUS} key is the @key{PageUp} key on many keyboards. Emacs 625refers to it by the name @key{PRIOR}. When you use @key{PRIOR} or 626@key{PageUp} to scroll, Info never scrolls beyond the beginning of the 627current node. 628 629@kindex BS (backspace) 630If your keyboard lacks the @key{DEL} key, look for a key called 631@key{BS}, or @samp{BackSpace}, sometimes designated with an arrow which 632points to the left, which should perform the same function. 633 634@table @asis 635@item @key{C-l} (@code{redraw-display}) 636@kindex C-l 637@findex redraw-display 638Redraw the display from scratch, or shift the line containing the cursor 639to a specified location. With no numeric argument, @samp{C-l} clears 640the screen, and then redraws its entire contents. Given a numeric 641argument of @var{n}, the line containing the cursor is shifted so that 642it is on the @var{n}th line of the window. 643 644@item @kbd{C-x @key{w}} (@code{toggle-wrap}) 645@kindex C-w 646@findex toggle-wrap 647Toggles the state of line wrapping in the current window. Normally, 648lines which are longer than the screen width @dfn{wrap}, i.e., they are 649continued on the next line. Lines which wrap have a @samp{\} appearing 650in the rightmost column of the screen. You can cause such lines to be 651terminated at the rightmost column by changing the state of line 652wrapping in the window with @code{C-x w}. When a line which needs more 653space than one screen width to display is displayed, a @samp{$} appears 654in the rightmost column of the screen, and the remainder of the line is 655invisible. When long lines are truncated, the modeline displays the 656@samp{$} character near its left edge. 657@end table 658 659 660@node Node Commands 661@chapter Selecting a Node 662@cindex nodes, selection of 663 664This section details the numerous Info commands which select a new node 665to view in the current window. 666 667The most basic node commands are @samp{n}, @samp{p}, @samp{u}, and 668@samp{l}. Note that the commands to select nodes are mapped differently 669when @samp{--vi-keys} is in effect; these keybindings are designated 670below as ``vi-like operation''. 671 672When you are viewing a node, the top line of the node contains some Info 673@dfn{pointers} which describe where the next, previous, and up nodes 674are. Info uses this line to move about the node structure of the file 675when you use the following commands: 676 677@table @asis 678@item @key{n} (@code{next-node}) 679@itemx @kbd{C-@key{NEXT}} (on DOS/Windows only) 680@itemx @kbd{C-x @key{n}}, vi-like operation 681@kindex n 682@kindex C-NEXT 683@kindex C-x n, vi-like operation 684@findex next-node 685Select the `Next' node. 686 687@kindex C-PgDn 688The @key{NEXT} key is known as the @key{PgDn} key on some 689keyboards. 690 691@item @key{p} (@code{prev-node}) 692@itemx @kbd{C-@key{PREVIOUS}} (on DOS/Windows only) 693@kindex p 694@kindex C-PREVIOUS 695@findex prev-node 696Select the `Prev' node. 697 698@kindex C-PgUp 699The @key{PREVIOUS} key is known as the @key{PgUp} key on some 700keyboards. 701 702@item @key{u} (@code{up-node}) 703@itemx @kbd{C-@key{UP}} (an arrow key on DOS/Windows only) 704@itemx @kbd{C-x @key{u}}, vi-like operation 705@kindex u 706@kindex C-UP 707@kindex C-x u, vi-like operation 708@findex up-node 709Select the `Up' node. 710@end table 711 712You can easily select a node that you have already viewed in this window 713by using the @samp{l} command---this name stands for ``last'', and 714actually moves backwards through the history of visited nodes for this 715window. This is handy when you followed a reference to another node, 716possibly to read about a related issue, and would like then to resume 717reading at the same place where you started the excursion. 718 719Each node where you press @samp{l} is discarded from the history. Thus, 720by the time you get to the first node you visited in a window, the 721entire history of that window is discarded. 722 723@table @asis 724@item @key{l} (@code{history-node}) 725@itemx @key{C-@key{CENTER}} (on DOS/Windows only) 726@itemx @key{'}, vi-like operation 727@kindex l 728@kindex C-CENTER 729@kindex ', vi-like operation 730@findex history-node 731Pop the most recently selected node in this window from the node 732history. 733@end table 734 735Two additional commands make it easy to select the most commonly 736selected nodes; they are @samp{t} and @samp{d}. 737 738@table @asis 739@item @key{t} (@code{top-node}) 740@itemx @key{M-t}, vi-like operation 741@kindex t 742@kindex M-t, vi-like operation 743@findex top-node 744Select the node @samp{Top} in the current Info file. 745 746@item @key{d} (@code{dir-node}) 747@itemx @key{M-d}, vi-like operation 748@kindex d 749@kindex M-d, vi-like operation 750@findex dir-node 751Select the directory node (i.e., the node @samp{(dir)}). 752@end table 753 754Here are some other commands which immediately result in the selection 755of a different node in the current window: 756 757@table @asis 758@item @key{<} (@code{first-node}) 759@itemx @key{g}, vi-like operation 760@kindex < 761@kindex g, vi-like operation 762@findex first-node 763Selects the first node which appears in this file. This node is most 764often @samp{Top}, but it does not have to be. With a numeric argument 765@var{N}, select the @var{N}th node (the first node is node 1). An 766argument of zero is the same as the argument of 1. 767 768@item @key{>} (@code{last-node}) 769@itemx @key{G}, vi-like operation 770@kindex > 771@kindex G, vi-like operation 772@findex last-node 773Select the last node which appears in this file. With a numeric argument 774@var{N}, select the @var{N}th node (the first node is node 1). An 775argument of zero is the same as no argument, i.e., it selects the last 776node. 777 778@item @key{]} (@code{global-next-node}) 779@kindex ] 780@findex global-next-node 781Move forward or down through node structure. If the node that you are 782currently viewing has a @samp{Next} pointer, that node is selected. 783Otherwise, if this node has a menu, the first menu item is selected. If 784there is no @samp{Next} and no menu, the same process is tried with the 785@samp{Up} node of this node. 786 787@item @key{[} (@code{global-prev-node}) 788@kindex [ 789@findex global-prev-node 790Move backward or up through node structure. If the node that you are 791currently viewing has a @samp{Prev} pointer, that node is selected. 792Otherwise, if the node has an @samp{Up} pointer, that node is selected, 793and if it has a menu, the last item in the menu is selected. 794@end table 795 796You can get the same behavior as @code{global-next-node} and 797@code{global-prev-node} while simply scrolling through the file with 798@key{SPC} and @key{DEL}; @xref{Variables, @code{scroll-behavior}}, for 799more information. 800 801@table @asis 802@anchor{goto-node} 803@item @key{g} (@code{goto-node}) 804@itemx @kbd{C-x @key{g}}, vi-like operation 805@kindex g 806@kindex C-x g, vi-like operation 807@findex goto-node 808Read the name of a node and select it. While reading the node name, 809completion (@pxref{The Echo Area, completion}) is only done for the 810nodes which reside in one of the Info files that were loaded in the 811current Info session; if the desired node resides in some other file, 812you must type the node exactly as it appears in that Info file, and you 813must include the Info file of the other file. For example, 814 815@example 816@code{g(emacs)Buffers} 817@end example 818 819finds the node @samp{Buffers} in the Info file @file{emacs}. 820 821@anchor{goto-invocation} 822@item @key{O} (@code{goto-invocation} 823@itemx @key{I} 824@kindex O 825@kindex I 826@findex goto-invocation 827@cindex finding the Invocation node 828Read the name of a program and look for a node in the current Info file 829which describes the invocation and the command-line options for that 830program. The default program name is derived from the name of the 831current Info file. This command does the same as the 832@samp{--show-options} command-line option (@pxref{--show-options}), but 833it also allows to specify the program name; this is important for those 834manuals which describe several programs. 835 836If you need to find the Invocation node of a program that is documented 837in another Info file, you need to visit that file before invoking 838@samp{I}. For example, if you are reading the Emacs manual and want to 839see the command-line options of the @code{makeinfo} program, type @kbd{g 840(texinfo) @key{RET}} and then @kbd{I makeinfo @key{RET}}. If you don't 841know what Info file documents the command, or if invoking @samp{I} 842doesn't display the right node, go to the @samp{(dir)} node (using the 843@samp{d} command) and invoke @samp{I} from there. 844 845@item @key{G} (@code{menu-sequence}) 846@kindex G 847@findex menu-sequence 848@cindex menu, following, from inside Info 849Read a sequence of menu entries and follow it. Info prompts for a 850sequence of menu items separated by commas. (Since commas are not 851allowed in a node name, they are a natural choice for a delimiter in a 852list of menu items.) Info then looks up the first item in the menu of 853the node @samp{(dir)} (if the @samp{(dir)} node cannot be found, Info 854uses @samp{Top}). If such an entry is found, Info goes to the node it 855points to and looks up the second item in the menu of that node, etc. 856In other words, you can specify a complete path which descends through 857the menu hierarchy of a particular Info file starting at the 858@samp{(dir)} node. This has the same effect as if you typed the menu 859item sequence on Info's command line, see @ref{command-line menu items,, 860Info command-line arguments processing}. For example, 861 862@example 863 @kbd{G Texinfo,Overview,Reporting Bugs @key{RET}} 864@end example 865 866@noindent 867displays the node @samp{Reporting Bugs} in the Texinfo manual. (You 868don't actually need to type the menu items in their full length, or in 869their exact letter-case. However, if you do type the menu items 870exactly, Info will find it faster.) 871 872If any of the menu items you type are not found, Info stops at the last 873entry it did find and reports an error. 874 875@item @kbd{C-x @key{k}} (@code{kill-node}) 876@kindex C-x k 877@findex kill-node 878Kill a node. The node name is prompted for in the echo area, with a 879default of the current node. @dfn{Killing} a node means that Info tries 880hard to forget about it, removing it from the list of history nodes kept 881for the window where that node is found. Another node is selected in 882the window which contained the killed node. 883 884@item @kbd{C-x C-f} (@code{view-file}) 885@kindex C-x C-f 886@findex view-file 887Read the name of a file and selects the entire file. The command 888@example 889@code{C-x C-f @var{filename}} 890@end example 891is equivalent to typing 892@example 893@code{g(@var{filename})*} 894@end example 895 896@item @kbd{C-x C-b} (@code{list-visited-nodes}) 897@kindex C-x C-b 898@findex list-visited-nodes 899Make a window containing a menu of all of the currently visited nodes. 900This window becomes the selected window, and you may use the standard 901Info commands within it. 902 903@item @kbd{C-x @key{b}} (@code{select-visited-node}) 904@kindex C-x b 905@findex select-visited-node 906Select a node which has been previously visited in a visible window. 907This is similar to @samp{C-x C-b} followed by @samp{m}, but no window is 908created. 909@end table 910 911 912@node Searching Commands 913@chapter Searching an Info File 914@cindex searching 915 916GNU Info allows you to search for a sequence of characters throughout an 917entire Info file, search through the indices of an Info file, or find 918areas within an Info file which discuss a particular topic. 919 920@table @asis 921@item @key{s} (@code{search}) 922@itemx @key{/} 923@kindex s 924@kindex / 925@findex search 926Read a string in the echo area and search for it. If the string 927includes upper-case characters, the Info file is searched 928case-sensitively; otherwise Info ignores the letter case. With a 929numeric argument of @var{N}, search for @var{N}th occurrence of the 930string. Negative arguments search backwards. 931 932@item @key{?} (@code{search-backward}, vi-like operation) 933@kindex ?, vi-like operation 934@findex search-backward 935Read a string in the echo area and search backward through the Info file 936for that string. If the string includes upper-case characters, the Info 937file is searched case-sensitively; otherwise Info ignores the letter 938case. With a numeric argument of @var{N}, search for @var{N}th 939occurrence of the string. Negative arguments search forward. 940 941@item @key{S} (@code{search-case-sensitively} 942@kindex S 943@findex search-case-sensitively 944@cindex search, case-sensitive 945@cindex case-sensitive search 946Read a string in the echo area and search for it case-sensitively, even 947if the string includes only lower-case letters. With a numeric argument 948of @var{N}, search for @var{N}th occurrence of the string. Negative 949arguments search backwards. 950 951@item @kbd{C-x @key{n}} (@code{search-next}) 952@itemx @key{n}, vi-like operation 953@kindex C-x n 954@kindex n, vi-like operation 955@findex search-next 956@cindex repeated search 957Search for the same string used in the last search command, in the same 958direction, and with the same case-sensitivity option. With a numeric 959argument of @var{N}, search for @var{N}th next occurrence. 960 961@item @kbd{C-x @key{N}} (@code{search-previous}) 962@itemx @key{N}, vi-like operation 963@kindex C-x N 964@kindex n, vi-like operation 965@findex search-previous 966Search for the same string used in the last search command, and with the 967same case-sensitivity option, but in the reverse direction. With a 968numeric argument of @var{N}, search for @var{N}th previous occurrence. 969 970@item @key{C-s} (@code{isearch-forward}) 971@kindex C-s 972@findex isearch-forward 973@cindex incremental search 974Interactively search forward through the Info file for a string as you 975type it. If the string includes upper-case characters, the search is 976case-sensitive; otherwise Info ignores the letter case. 977 978@item @key{C-r} (@code{isearch-backward}) 979@kindex C-r 980@findex isearch-backward 981Interactively search backward through the Info file for a string as 982you type it. If the string includes upper-case characters, the search 983is case-sensitive; otherwise Info ignores the letter case. 984 985@item @key{i} (@code{index-search}) 986@kindex i 987@findex index-search 988@cindex index, searching 989@cindex searching, in the indices 990Look up a string in the indices for this Info file, and select a node 991to which the found index entry points. 992 993@item @key{,} (@code{next-index-match}) 994@kindex , 995@findex next-index-match 996Move to the node containing the next matching index item from the last 997@samp{i} command. 998 999@item @kbd{M-x index-apropos} 1000@findex index-apropos 1001Grovel the indices of all the known Info files on your system for a 1002string, and build a menu of the possible matches. 1003@end table 1004 1005The most basic searching command is @samp{s} or @samp{/} 1006(@code{search}). The @samp{s} command prompts you for a string in the 1007echo area, and then searches the remainder of the Info file for an 1008occurrence of that string. If the string is found, the node containing 1009it is selected, and the cursor is left positioned at the start of the 1010found string. Subsequent @samp{s} commands show you the default search 1011string within @samp{[} and @samp{]}; pressing @key{RET} instead of 1012typing a new string will use the default search string. Under 1013@samp{--vi-keys} (@pxref{--vi-keys}), using the @samp{n} or @samp{N} 1014commands is a faster way of searching for the same string. 1015 1016@dfn{Incremental searching} is similar to basic searching, but the 1017string is looked up while you are typing it, instead of waiting until 1018the entire search string has been specified. 1019 1020@cindex search, and case-sensitivity 1021@cindex case-sensitivity, and search 1022Both incremental and non-incremental search by default ignore the case 1023of letters when comparing the Info file text with the search string. 1024However, an uppercase letter in the search string makes the search 1025case-sensitive. You can force a case-sensitive non-incremental search, 1026even for a string that includes only lower-case letters, by using the 1027@samp{S} command (@code{search-case-sensitively}). The @samp{n} and 1028@samp{N} commands operate case-sensitively if the last search command 1029was @samp{S}. 1030 1031The most efficient means of finding something quickly in a manual is 1032the @samp{i} command (@code{index-search}). This command prompts for 1033a string, and then looks for that string in all the indices of the 1034current Info manual. If it finds a matching index entry, it displays 1035the node to which that entry refers and prints the full text of the 1036entry in the echo area. You can press @samp{,} 1037(@code{next-index-match}) to find more matches. A good Info manual 1038has all of its important concepts indexed, so the @samp{i} command 1039lets you use a manual as a reference. 1040 1041If you don't know what manual documents something, try the @kbd{M-x 1042index-apropos} command. It prompts for a string and then looks up 1043that string in all the indices of all the Info documents installed on 1044your system. It can also be invoked from the command line; see 1045@ref{--apropos}. 1046 1047 1048@node Xref Commands 1049@chapter Selecting Cross References 1050 1051We have already discussed the @samp{Next}, @samp{Prev}, and @samp{Up} 1052pointers which appear at the top of a node. In addition to these 1053pointers, a node may contain other pointers which refer you to a 1054different node, perhaps in another Info file. Such pointers are called 1055@dfn{cross references}, or @dfn{xrefs} for short. 1056 1057@menu 1058* Parts of an Xref:: What a cross reference is made of. 1059* Selecting Xrefs:: Commands for selecting menu or note items. 1060@end menu 1061 1062@node Parts of an Xref 1063@section Parts of an Xref 1064 1065Cross references have two major parts: the first part is called the 1066@dfn{label}; it is the name that you can use to refer to the cross 1067reference, and the second is the @dfn{target}; it is the full name of 1068the node that the cross reference points to. 1069 1070The target is separated from the label by a colon @samp{:}; first the 1071label appears, and then the target. For example, in the sample menu 1072cross reference below, the single colon separates the label from the 1073target. 1074 1075@example 1076* Foo Label: Foo Target. More information about Foo. 1077@end example 1078 1079Note the @samp{.} which ends the name of the target. The @samp{.} is 1080not part of the target; it serves only to let Info know where the target 1081name ends. 1082 1083A shorthand way of specifying references allows two adjacent colons to 1084stand for a target name which is the same as the label name: 1085 1086@example 1087* Foo Commands:: Commands pertaining to Foo. 1088@end example 1089 1090In the above example, the name of the target is the same as the name of 1091the label, in this case @code{Foo Commands}. 1092 1093You will normally see two types of cross reference while viewing nodes: 1094@dfn{menu} references, and @dfn{note} references. Menu references 1095appear within a node's menu; they begin with a @samp{*} at the beginning 1096of a line, and continue with a label, a target, and a comment which 1097describes what the contents of the node pointed to contains. 1098 1099Note references appear within the body of the node text; they begin with 1100@code{*Note}, and continue with a label and a target. 1101 1102Like @samp{Next}, @samp{Prev}, and @samp{Up} pointers, cross references 1103can point to any valid node. They are used to refer you to a place 1104where more detailed information can be found on a particular subject. 1105Here is a cross reference which points to a node within the Texinfo 1106documentation: @xref{xref, , Writing an Xref, texinfo, the Texinfo 1107Manual}, for more information on creating your own texinfo cross 1108references. 1109 1110@node Selecting Xrefs 1111@section Selecting Xrefs 1112 1113The following table lists the Info commands which operate on menu items. 1114 1115@table @asis 1116@item @key{1} (@code{menu-digit}) 1117@itemx @key{2} @dots{} @key{9} 1118@itemx @key{M-1}, vi-like operation 1119@itemx @key{M-2} @dots{} @key{M-9}, vi-like operation 1120@cindex 1 @dots{} 9, in Info windows 1121@cindex M-1 @dots{} M-9, vi-like operation 1122@kindex 1 @dots{} 9, in Info windows 1123@kindex M-1 @dots{} M-9, vi-like operation 1124@findex menu-digit 1125Within an Info window, pressing a single digit, (such as @samp{1}), 1126selects that menu item, and places its node in the current window. 1127For convenience, there is one exception; pressing @samp{0} selects the 1128@emph{last} item in the node's menu. When @samp{--vi-keys} is in 1129effect, digits set the numeric argument, so these commands are remapped 1130to their @samp{M-} varieties. For example, to select the last menu 1131item, press @key{M-0}. 1132 1133@item @key{0} (@code{last-menu-item}) 1134@itemx @key{M-0}, vi-like operation 1135@kindex 0, in Info windows 1136@kindex M-0, vi-like operation 1137@findex last-menu-item 1138Select the last item in the current node's menu. 1139 1140@item @key{m} (@code{menu-item}) 1141@kindex m 1142@findex menu-item 1143Reads the name of a menu item in the echo area and selects its node. 1144Completion is available while reading the menu label. @xref{The Echo 1145Area, completion}. 1146 1147@item @kbd{M-x find-menu} 1148@findex find-menu 1149Move the cursor to the start of this node's menu. 1150@end table 1151 1152This table lists the Info commands which operate on cross references. 1153 1154@table @asis 1155@item @key{f} (@code{xref-item}) 1156@itemx @key{r} 1157@item @key{M-f}, vi-like operation 1158@itemx @kbd{C-x @key{r}}, vi-like operation 1159@kindex f 1160@kindex r 1161@kindex M-f, vi-like operation 1162@kindex C-x r, vi-like operation 1163@findex xref-item 1164Reads the name of a note cross reference in the echo area and selects 1165its node. Completion is available while reading the cross reference 1166label. @xref{The Echo Area, completion}. 1167@end table 1168 1169Finally, the next few commands operate on menu or note references alike: 1170 1171@table @asis 1172@item @key{TAB} (@code{move-to-next-xref}) 1173@kindex TAB, in Info windows 1174@findex move-to-next-xref 1175Move the cursor to the start of the next nearest menu item or note 1176reference in this node. You can then use @key{RET} 1177(@code{select-reference-this-line}) to select the menu or note reference. 1178 1179@item @key{M-TAB} (@code{move-to-prev-xref}) 1180@itemx @key{Shift-@key{TAB}} (on DOS/Windows only) 1181@kindex M-TAB, in Info windows 1182@findex move-to-prev-xref 1183Move the cursor the start of the nearest previous menu item or note 1184reference in this node. 1185 1186@kindex Shift-TAB, in Info windows 1187@kindex BackTab, in Info windows 1188On DOS/Windows only, the @kbd{Shift-@key{TAB}} key is an alias for 1189@kbd{M-@key{TAB}}. This key is sometimes called @samp{BackTab}. 1190 1191@item @key{RET} (@code{select-reference-this-line}) 1192@itemx @key{M-g}, vi-like operation 1193@kindex RET, in Info windows 1194@kindex M-g, vi-like operation 1195@findex select-reference-this-line 1196Select the menu item or note reference appearing on this line. 1197@end table 1198 1199 1200@node Window Commands 1201@chapter Manipulating Multiple Windows 1202@cindex windows, manipulating 1203 1204A @dfn{window} is a place to show the text of a node. Windows have a 1205view area where the text of the node is displayed, and an associated 1206@dfn{mode line}, which briefly describes the node being viewed. 1207 1208GNU Info supports multiple windows appearing in a single screen; each 1209window is separated from the next by its modeline. At any time, there 1210is only one @dfn{active} window, that is, the window in which the cursor 1211appears. There are commands available for creating windows, changing 1212the size of windows, selecting which window is active, and for deleting 1213windows. 1214 1215@menu 1216* The Mode Line:: What appears in the mode line? 1217* Basic Windows:: Manipulating windows in Info. 1218* The Echo Area:: Used for displaying errors and reading input. 1219@end menu 1220 1221@node The Mode Line 1222@section The Mode Line 1223 1224A @dfn{mode line} is a line of inverse video which appears at the bottom 1225of an Info window. It describes the contents of the window just above 1226it; this information includes the name of the file and node appearing in 1227that window, the number of screen lines it takes to display the node, 1228and the percentage of text that is above the top of the window. It can 1229also tell you if the indirect tags table for this Info file needs to be 1230updated, and whether or not the Info file was compressed when stored on 1231disk. 1232 1233Here is a sample mode line for a window containing an uncompressed file 1234named @file{dir}, showing the node @samp{Top}. 1235 1236@example 1237@group 1238-----Info: (dir)Top, 40 lines --Top------------------------------------- 1239 ^^ ^ ^^^ ^^ 1240 (file)Node #lines where 1241@end group 1242@end example 1243 1244When a node comes from a file which is compressed on disk, this is 1245indicated in the mode line with two small @samp{z}'s. In addition, if 1246the Info file containing the node has been split into subfiles, the name 1247of the subfile containing the node appears in the modeline as well: 1248 1249@example 1250--zz-Info: (emacs)Top, 291 lines --Top-- Subfile: emacs-1.Z------------- 1251@end example 1252 1253Truncation of long lines (as opposed to wrapping them to the next 1254display line, @pxref{Scrolling Commands, toggle-wrap}) is indicated by a 1255@samp{$} at the left edge of the mode line: 1256 1257@example 1258--$--Info: (texinfo)Top, 480 lines --Top-- Subfile: texinfo-1----------- 1259@end example 1260 1261When Info makes a node internally, such that there is no corresponding 1262info file on disk, the name of the node is surrounded by asterisks 1263(@samp{*}). The name itself tells you what the contents of the window 1264are; the sample mode line below shows an internally constructed node 1265showing possible completions: 1266 1267@example 1268-----Info: *Completions*, 7 lines --All--------------------------------- 1269@end example 1270 1271@node Basic Windows 1272@section Window Commands 1273 1274It can be convenient to view more than one node at a time. To allow 1275this, Info can display more than one @dfn{window}. Each window has its 1276own mode line (@pxref{The Mode Line}) and history of nodes viewed in that 1277window (@pxref{Node Commands, , @code{history-node}}). 1278 1279@table @asis 1280@item @kbd{C-x @key{o}} (@code{next-window}) 1281@cindex windows, selecting 1282@kindex C-x o 1283@findex next-window 1284Select the next window on the screen. Note that the echo area can only be 1285selected if it is already in use, and you have left it temporarily. 1286Normally, @samp{C-x o} simply moves the cursor into the next window on 1287the screen, or if you are already within the last window, into the first 1288window on the screen. Given a numeric argument, @samp{C-x o} moves over 1289that many windows. A negative argument causes @samp{C-x o} to select 1290the previous window on the screen. 1291 1292@item @kbd{M-x prev-window} 1293@findex prev-window 1294Select the previous window on the screen. This is identical to 1295@samp{C-x o} with a negative argument. 1296 1297@item @kbd{C-x @key{2}} (@code{split-window}) 1298@cindex windows, creating 1299@kindex C-x 2 1300@findex split-window 1301Split the current window into two windows, both showing the same node. 1302Each window is one half the size of the original window, and the cursor 1303remains in the original window. The variable @code{automatic-tiling} 1304can cause all of the windows on the screen to be resized for you 1305automatically (@pxref{Variables, , automatic-tiling}). 1306 1307@item @kbd{C-x @key{0}} (@code{delete-window}) 1308@cindex windows, deleting 1309@kindex C-x 0 1310@findex delete-window 1311Delete the current window from the screen. If you have made too many 1312windows and your screen appears cluttered, this is the way to get rid of 1313some of them. 1314 1315@item @kbd{C-x @key{1}} (@code{keep-one-window}) 1316@kindex C-x 1 1317@findex keep-one-window 1318Delete all of the windows excepting the current one. 1319 1320@item @kbd{ESC @key{C-v}} (@code{scroll-other-window}) 1321@kindex ESC C-v, in Info windows 1322@findex scroll-other-window 1323Scroll the other window, in the same fashion that @samp{C-v} might 1324scroll the current window. Given a negative argument, scroll the 1325``other'' window backward. 1326 1327@item @kbd{C-x @key{^}} (@code{grow-window}) 1328@kindex C-x ^ 1329@findex grow-window 1330Grow (or shrink) the current window. Given a numeric argument, grow 1331the current window that many lines; with a negative numeric argument, 1332shrink the window instead. 1333 1334@item @kbd{C-x @key{t}} (@code{tile-windows}) 1335@cindex tiling 1336@kindex C-x t 1337@findex tile-windows 1338Divide the available screen space among all of the visible windows. 1339Each window is given an equal portion of the screen in which to display 1340its contents. The variable @code{automatic-tiling} can cause 1341@code{tile-windows} to be called when a window is created or deleted. 1342@xref{Variables, , @code{automatic-tiling}}. 1343@end table 1344 1345@node The Echo Area 1346@section The Echo Area 1347@cindex echo area 1348 1349The @dfn{echo area} is a one line window which appears at the bottom of 1350the screen. It is used to display informative or error messages, and to 1351read lines of input from you when that is necessary. Almost all of the 1352commands available in the echo area are identical to their Emacs 1353counterparts, so please refer to that documentation for greater depth of 1354discussion on the concepts of editing a line of text. The following 1355table briefly lists the commands that are available while input is being 1356read in the echo area: 1357 1358@table @asis 1359@item @key{C-f} (@code{echo-area-forward}) 1360@itemx @key{RIGHT} (an arrow key) 1361@itemx @key{M-h}, vi-like operation 1362@kindex C-f, in the echo area 1363@kindex RIGHT, in the echo area 1364@kindex M-h, in the echo area, vi-like operation 1365@findex echo-area-forward 1366Move forward a character. 1367 1368@item @key{C-b} (@code{echo-area-backward}) 1369@itemx @key{LEFT} (an arrow key) 1370@itemx @key{M-l}, vi-like operation 1371@kindex LEFT, in the echo area 1372@kindex C-b, in the echo area 1373@kindex M-l, in the echo area, vi-like operation 1374@findex echo-area-backward 1375Move backward a character. 1376 1377@item @key{C-a} (@code{echo-area-beg-of-line}) 1378@itemx @key{M-0}, vi-like operation 1379@kindex C-a, in the echo area 1380@kindex M-0, in the echo area, vi-like operation 1381@findex echo-area-beg-of-line 1382Move to the start of the input line. 1383 1384@item @key{C-e} (@code{echo-area-end-of-line}) 1385@itemx @key{M-$}, vi-like operation 1386@kindex C-e, in the echo area 1387@kindex M-$, vi-like operation 1388@findex echo-area-end-of-line 1389Move to the end of the input line. 1390 1391@item @key{M-f} (@code{echo-area-forward-word}) 1392@itemx @key{C-@key{RIGHT}} (DOS/Windows only) 1393@itemx @key{M-w}, vi-like operation 1394@kindex M-f, in the echo area 1395@kindex M-w, in the echo area, vi-like operation 1396@findex echo-area-forward-word 1397Move forward a word. 1398 1399@kindex C-RIGHT, in the echo area 1400On DOS/Windows, @kbd{C-@key{RIGHT}} moves forward by words. 1401 1402@item @key{M-b} (@code{echo-area-backward-word}) 1403@itemx @key{C-@key{LEFT}} (DOS/Windows only) 1404@kindex M-b, in the echo area 1405@findex echo-area-backward-word 1406Move backward a word. 1407 1408@kindex C-LEFT, in the echo area 1409On DOS/Windows, @kbd{C-@key{LEFT}} moves backward by words. 1410 1411@item @key{C-d} (@code{echo-area-delete}) 1412@itemx @key{M-x}, vi-like operation 1413@kindex C-d, in the echo area 1414@kindex M-x, in the echo area, vi-like operation 1415@findex echo-area-delete 1416Delete the character under the cursor. 1417 1418@item @key{DEL} (@code{echo-area-rubout}) 1419@kindex DEL, in the echo area 1420@findex echo-area-rubout 1421Delete the character behind the cursor. 1422 1423On some keyboards, this key is designated @key{BS}, for 1424@samp{BackSpace}. Those keyboards will usually bind @key{DEL} in the 1425echo area to @code{echo-area-delete}. 1426 1427@item @key{C-g} (@code{echo-area-abort}) 1428@itemx @key{C-u}, vi-like operation 1429@kindex C-g, in the echo area 1430@kindex C-u, in the echo area, vi-like operation 1431@findex echo-area-abort 1432Cancel or quit the current operation. If completion is being read, this 1433command discards the text of the input line which does not match any 1434completion. If the input line is empty, it aborts the calling function. 1435 1436@item @key{RET} (@code{echo-area-newline}) 1437@kindex RET, in the echo area 1438@findex echo-area-newline 1439Accept (or forces completion of) the current input line. 1440 1441@item @key{C-q} (@code{echo-area-quoted-insert}) 1442@itemx @key{C-v}, vi-like operation 1443@kindex C-q, in the echo area 1444@kindex C-v, in the echo area, vi-like operation 1445@findex echo-area-quoted-insert 1446Insert the next character verbatim. This is how you can insert control 1447characters into a search string, for example, or the @samp{?} character 1448when Info prompts with completion. 1449 1450@item @var{printing character} (@code{echo-area-insert}) 1451@kindex printing characters, in the echo area 1452@findex echo-area-insert 1453Insert the character. Characters that have their 8th bit set, and not 1454bound to @samp{M-} commands, are also inserted verbatim; this is useful 1455for terminals which support Latin scripts. 1456 1457@item @key{M-TAB} (@code{echo-area-tab-insert}) 1458@itemx @key{Shift-@key{TAB}} (on DOS/Windows only) 1459@kindex M-TAB, in the echo area 1460@kindex Shift-TAB, in the echo area 1461@findex echo-area-tab-insert 1462Insert a TAB character. 1463 1464@kindex Shift-TAB, in the echo area 1465@kindex BackTab, in the echo area 1466On DOS/Windows only, the @kbd{Shift-@key{TAB}} key is an alias for 1467@kbd{M-@key{TAB}}. This key is sometimes called @samp{BackTab}. 1468 1469@item @key{C-t} (@code{echo-area-transpose-chars}) 1470@kindex C-t, in the echo area 1471@findex echo-area-transpose-chars 1472Transpose the characters at the cursor. 1473@end table 1474 1475The next group of commands deal with @dfn{killing}, and @dfn{yanking} 1476text@footnote{ 1477Some people are used to calling these operations @dfn{cut} and 1478@dfn{paste}, respectively.}. For an in-depth discussion of killing and 1479yanking, see @ref{Killing, , Killing and Deleting, emacs, the GNU Emacs 1480Manual}. 1481 1482@table @asis 1483@item @key{M-d} (@code{echo-area-kill-word}) 1484@itemx @key{M-X}, vi-like operation 1485@kindex M-d, in the echo area 1486@kindex M-X, in the echo area, vi-like operation 1487@findex echo-area-kill-word 1488Kill the word following the cursor. 1489 1490@item @key{M-DEL} (@code{echo-area-backward-kill-word}) 1491@itemx @key{M-@key{BS}} 1492@kindex M-DEL, in the echo area 1493@findex echo-area-backward-kill-word 1494Kill the word preceding the cursor. 1495 1496@kindex M-BS, in the echo area 1497On some keyboards, the @code{Backspace} key is used instead of 1498@code{DEL}, so @code{M-@key{Backspace}} has the same effect as 1499@code{M-@key{DEL}}. 1500 1501@item @key{C-k} (@code{echo-area-kill-line}) 1502@kindex C-k, in the echo area 1503@findex echo-area-kill-line 1504Kill the text from the cursor to the end of the line. 1505 1506@item @kbd{C-x @key{DEL}} (@code{echo-area-backward-kill-line}) 1507@kindex C-x DEL, in the echo area 1508@findex echo-area-backward-kill-line 1509Kill the text from the cursor to the beginning of the line. 1510 1511@item @key{C-y} (@code{echo-area-yank}) 1512@kindex C-y, in the echo area 1513@findex echo-area-yank 1514Yank back the contents of the last kill. 1515 1516@item @key{M-y} (@code{echo-area-yank-pop}) 1517@kindex M-y, in the echo area 1518@findex echo-area-yank-pop 1519Yank back a previous kill, removing the last yanked text first. 1520@end table 1521 1522@cindex completion 1523Sometimes when reading input in the echo area, the command that needed 1524input will only accept one of a list of several choices. The choices 1525represent the @dfn{possible completions}, and you must respond with one 1526of them. Since there are a limited number of responses you can make, 1527Info allows you to abbreviate what you type, only typing as much of the 1528response as is necessary to uniquely identify it. In addition, you can 1529request Info to fill in as much of the response as is possible; this 1530is called @dfn{completion}. 1531 1532The following commands are available when completing in the echo area: 1533 1534@table @asis 1535@item @key{TAB} (@code{echo-area-complete}) 1536@itemx @key{SPC} 1537@kindex TAB, in the echo area 1538@kindex SPC, in the echo area 1539@findex echo-area-complete 1540Insert as much of a completion as is possible. 1541 1542@item @key{?} (@code{echo-area-possible-completions}) 1543@kindex ?, in the echo area 1544@findex echo-area-possible-completions 1545Display a window containing a list of the possible completions of what 1546you have typed so far. For example, if the available choices are: 1547 1548@example 1549@group 1550bar 1551foliate 1552food 1553forget 1554@end group 1555@end example 1556 1557@noindent 1558and you have typed an @samp{f}, followed by @samp{?}, Info will pop up a 1559window showing a node called @samp{*Completions*} which lists the 1560possible completions like this: 1561 1562@example 1563@group 15643 completions: 1565foliate food 1566forget 1567@end group 1568@end example 1569 1570@noindent 1571i.e., all of the choices which begin with @samp{f}. Pressing @key{SPC} 1572or @key{TAB} would result in @samp{fo} appearing in the echo area, since 1573all of the choices which begin with @samp{f} continue with @samp{o}. 1574Now, typing @samp{l} followed by @samp{TAB} results in @samp{foliate} 1575appearing in the echo area, since that is the only choice which begins 1576with @samp{fol}. 1577 1578@item @key{ESC C-v} (@code{echo-area-scroll-completions-window}) 1579@kindex ESC C-v, in the echo area 1580@findex echo-area-scroll-completions-window 1581Scroll the completions window, if that is visible, or the ``other'' 1582window if not. 1583@end table 1584 1585 1586@node Printing Nodes 1587@chapter Printing Nodes 1588@cindex printing 1589 1590In general, we recommend that you use @TeX{} to format the document and 1591print sections of it, by running @code{tex} on the Texinfo source file. 1592However, you may wish to print out the contents of a node as a quick 1593reference document for later use, or if you don't have @TeX{} installed. 1594Info provides you with a command for doing this. 1595 1596@table @asis 1597@item @kbd{M-x print-node} 1598@findex print-node 1599@cindex INFO_PRINT_COMMAND, environment variable 1600Pipe the contents of the current node through the command in the 1601environment variable @code{INFO_PRINT_COMMAND}. If the variable does not 1602exist, the node is simply piped to @code{lpr} (on DOS/Windows, the 1603default is to print the node to the local printer device, @file{PRN}). 1604 1605@cindex printing nodes to the local printer 1606@cindex local printer device 1607The value of @code{INFO_PRINT_COMMAND} may begin with the @samp{>} 1608character, as in @samp{>/dev/printer}, in which case Info treats the 1609rest as the name of a file or a device. Instead of piping to a command, 1610Info opens the file, writes the node contents, and closes the file, 1611under the assumption that text written to that file will be printed by 1612the underlying OS. 1613@end table 1614 1615 1616@node Miscellaneous Commands 1617@chapter Miscellaneous Commands 1618 1619GNU Info contains several commands which self-document GNU Info: 1620 1621@table @asis 1622@item @kbd{M-x describe-command} 1623@cindex functions, describing 1624@cindex commands, describing 1625@findex describe-command 1626Read the name of an Info command in the echo area and then display a 1627brief description of what that command does. 1628 1629@item @kbd{M-x describe-key} 1630@cindex keys, describing 1631@findex describe-key 1632Read a key sequence in the echo area, and then display the name and 1633documentation of the Info command that the key sequence invokes. 1634 1635@item @kbd{M-x describe-variable} 1636Read the name of a variable in the echo area and then display a brief 1637description of what the variable affects. 1638 1639@item @kbd{M-x where-is} 1640@findex where-is 1641Read the name of an Info command in the echo area, and then display 1642a key sequence which can be typed in order to invoke that command. 1643 1644@item @key{C-h} (@code{get-help-window}) 1645@itemx @key{?} 1646@itemx @key{F1} (on DOS/Windows only) 1647@itemx h, vi-like operation 1648@kindex C-h 1649@kindex ?, in Info windows 1650@kindex F1 1651@kindex h, vi-like operation 1652@findex get-help-window 1653Create (or Move into) the window displaying @code{*Help*}, and place 1654a node containing a quick reference card into it. This window displays 1655the most concise information about GNU Info available. 1656 1657@item @key{h} (@code{get-info-help-node}) 1658@itemx @key{M-h}, vi-like operation 1659@kindex h 1660@kindex M-h, vi-like operation 1661@findex get-info-help-node 1662Try hard to visit the node @code{(info)Help}. The Info file 1663@file{info.texi} distributed with GNU Info contains this node. Of 1664course, the file must first be processed with @code{makeinfo}, and then 1665placed into the location of your Info directory. 1666@end table 1667 1668Here are the commands for creating a numeric argument: 1669 1670@table @asis 1671@item @key{C-u} (@code{universal-argument}) 1672@cindex numeric arguments 1673@kindex C-u 1674@findex universal-argument 1675Start (or multiply by 4) the current numeric argument. @samp{C-u} is 1676a good way to give a small numeric argument to cursor movement or 1677scrolling commands; @samp{C-u C-v} scrolls the screen 4 lines, while 1678@samp{C-u C-u C-n} moves the cursor down 16 lines. @samp{C-u} followed 1679by digit keys sets the numeric argument to the number thus typed: 1680@kbd{C-u 1 2 0} sets the argument to 120. 1681 1682@item @key{M-1} (@code{add-digit-to-numeric-arg}) 1683@itemx @key{1}, vi-like operation 1684@itemx @key{M-2} @dots{} @key{M-9} 1685@itemx @key{2} @dots{} @key{9}, vi-like operation 1686@itemx @key{M-0} 1687@itemx @key{0}, vi-like operation 1688@kindex M-0 @dots{} M-9 1689@kindex 0 @dots{} 9, vi-like operation 1690@findex add-digit-to-numeric-arg 1691Add the digit value of the invoking key to the current numeric 1692argument. Once Info is reading a numeric argument, you may just type 1693the digits of the argument, without the Meta prefix. For example, you 1694might give @samp{C-l} a numeric argument of 32 by typing: 1695 1696@example 1697@kbd{C-u 3 2 C-l} 1698@end example 1699 1700@noindent 1701or 1702 1703@example 1704@kbd{M-3 2 C-l} 1705@end example 1706 1707@item @key{M--} (@code{add-digit-to-numeric-arg} 1708@itemx @key{-} 1709@kindex M-- 1710@kindex - 1711@cindex negative arguments 1712@cindex arguments, negative 1713@cindex numeric arguments, negative 1714To make a negative argument, type @kbd{-}. Typing @kbd{-} alone makes a 1715negative argument with a value of -1. If you continue to type digit or 1716Meta-digit keys after @kbd{-}, the result is a negative number produced 1717by those digits. 1718 1719@kbd{-} doesn't work when you type in the echo area, because you need to 1720be able to insert the @samp{-} character itself; use @kbd{M--} instead, 1721if you need to specify negative arguments in the echo area. 1722@end table 1723 1724@samp{C-g} is used to abort the reading of a multi-character key 1725sequence, to cancel lengthy operations (such as multi-file searches) and 1726to cancel reading input in the echo area. 1727 1728@table @asis 1729@item @key{C-g} (@code{abort-key}) 1730@itemx @key{C-u}, vi-like operation 1731@cindex cancelling typeahead 1732@cindex cancelling the current operation 1733@kindex C-g, in Info windows 1734@kindex C-u cancels typeahead, vi-like operation 1735@findex abort-key 1736Cancel current operation. 1737@end table 1738 1739The @samp{q} command of Info simply quits running Info. Under 1740@samp{--vi-keys} (@pxref{--vi-keys}), you can also exit with @samp{:q} 1741or @samp{ZZ}. 1742 1743@table @asis 1744@item @key{q} (@code{quit}) 1745@itemx @kbd{C-x C-c} 1746@itemx @kbd{:q}, vi-like operation 1747@itemx @kbd{ZZ}, vi-like operation 1748@cindex quitting 1749@kindex q 1750@kindex C-x C-c 1751@kindex ZZ, vi-like operation 1752@findex quit 1753Exit GNU Info. 1754@end table 1755 1756If the operating system tells GNU Info that the screen is 60 lines tall, 1757and it is actually only 40 lines tall, here is a way to tell Info that 1758the operating system is correct. 1759 1760@table @asis 1761@item @kbd{M-x set-screen-height} 1762@findex set-screen-height 1763@cindex screen, changing the height of 1764Read a height value in the echo area and set the height of the 1765displayed screen to that value. 1766@end table 1767 1768On MS-DOS/MS-Windows, this command actually tries to change the 1769dimensions of the visible screen to the value you type in the echo 1770area. 1771 1772Finally, Info provides a convenient way to display footnotes which might 1773be associated with the current node that you are viewing: 1774 1775@table @asis 1776@item @key{ESC C-f} (@code{show-footnotes}) 1777@kindex ESC C-f 1778@findex show-footnotes 1779@cindex footnotes, displaying 1780Show the footnotes (if any) associated with the current node in another 1781window. You can have Info automatically display the footnotes 1782associated with a node when the node is selected by setting the variable 1783@code{automatic-footnotes}. @xref{Variables, , @code{automatic-footnotes}}. 1784@end table 1785 1786 1787@node Variables 1788@chapter Manipulating Variables 1789 1790GNU Info contains several @dfn{variables} whose values are looked at by 1791various Info commands. You can change the values of these variables, 1792and thus change the behavior of Info to more closely match your 1793environment and Info file reading manner. 1794 1795There are two ways to set the value of a variable: interactively, using 1796the @code{set-variable} command described below, or in the @code{#var} 1797section of the @code{.infokey} file. @xref{Custom Key Bindings}. 1798 1799@table @asis 1800@item @kbd{M-x set-variable} 1801@cindex variables, setting 1802@findex set-variable 1803Read the name of a variable, and the value for it, in the echo area and 1804then set the variable to that value. Completion is available when 1805reading the variable name (@pxref{The Echo Area, completion}); often, 1806completion is available when reading the value to give to the variable, 1807but that depends on the variable itself. If a variable does @emph{not} 1808supply multiple choices to complete over, it expects a numeric value. 1809 1810@item @kbd{M-x describe-variable} 1811@cindex variables, describing 1812@findex describe-variable 1813Read the name of a variable in the echo area and then display a brief 1814description of what the variable affects. 1815@end table 1816 1817Here is a list of the variables that you can set in Info. 1818 1819@table @code 1820@item automatic-footnotes 1821@vindex automatic-footnotes 1822When set to @code{On}, footnotes appear and disappear automatically; 1823else, they appear at the bottom of the node text. This variable is 1824@code{Off} by default. When a node is selected, a window containing 1825the footnotes which appear in that node is created, and the footnotes 1826are displayed within the new window. The window that Info creates to 1827contain the footnotes is called @samp{*Footnotes*}. If a node is 1828selected which contains no footnotes, and a @samp{*Footnotes*} window 1829is on the screen, the @samp{*Footnotes*} window is deleted. Footnote 1830windows created in this fashion are not automatically tiled so that 1831they can use as little of the display as is possible. 1832 1833@item automatic-tiling 1834@vindex automatic-tiling 1835When set to @code{On}, creating or deleting a window resizes other 1836windows. This variable is @code{Off} by default. Normally, typing 1837@samp{C-x 2} divides the current window into two equal parts. When 1838@code{automatic-tiling} is set to @code{On}, all of the windows are 1839resized automatically, keeping an equal number of lines visible in each 1840window. There are exceptions to the automatic tiling; specifically, the 1841windows @samp{*Completions*} and @samp{*Footnotes*} are @emph{not} 1842resized through automatic tiling; they remain their original size. 1843 1844@item errors-ring-bell 1845@vindex errors-ring-bell 1846When set to @code{On}, errors cause the bell to ring. The default 1847setting of this variable is @code{On}. 1848 1849@item gc-compressed-files 1850@vindex gc-compressed-files 1851When set to @code{On}, Info garbage collects files which had to be 1852uncompressed. The default value of this variable is @code{Off}. 1853Whenever a node is visited in Info, the Info file containing that node 1854is read into core, and Info reads information about the tags and nodes 1855contained in that file. Once the tags information is read by Info, it 1856is never forgotten. However, the actual text of the nodes does not need 1857to remain in core unless a particular Info window needs it. For 1858non-compressed files, the text of the nodes does not remain in core when 1859it is no longer in use. But de-compressing a file can be a time 1860consuming operation, and so Info tries hard not to do it twice. 1861@code{gc-compressed-files} tells Info it is okay to garbage collect the 1862text of the nodes of a file which was compressed on disk. 1863 1864@item ISO-Latin 1865@cindex ISO Latin characters 1866@vindex ISO-Latin 1867When set to @code{On}, Info accepts and displays ISO Latin characters. 1868By default, Info assumes an ASCII character set. @code{ISO-Latin} tells 1869Info that it is running in an environment where the European standard 1870character set is in use, and allows you to input such characters to 1871Info, as well as display them. 1872 1873@item scroll-behavior 1874@vindex scroll-behavior 1875Control what happens when forward scrolling is requested at the end of 1876a node, or when backward scrolling is requested at the beginning of a 1877node. The default value for this variable is @code{Continuous}. There 1878are three possible values for this variable: 1879 1880@table @code 1881@item Continuous 1882Try to get the first item in this node's menu, or failing that, the 1883@samp{Next} node, or failing that, the @samp{Next} of the @samp{Up}. 1884This behavior is identical to using the @samp{]} 1885(@code{global-next-node}) and @samp{[} (@code{global-prev-node}) 1886commands. 1887 1888@item Next Only 1889Only try to get the @samp{Next} node. 1890 1891@item Page Only 1892Simply give up, changing nothing. If @code{scroll-behavior} is 1893@code{Page Only}, no scrolling command can change the node that is being 1894viewed. 1895@end table 1896 1897@item scroll-step 1898@vindex scroll-step 1899The number of lines to scroll when the cursor moves out of the window. 1900Scrolling happens automatically if the cursor has moved out of the 1901visible portion of the node text when it is time to display. Usually 1902the scrolling is done so as to put the cursor on the center line of the 1903current window. However, if the variable @code{scroll-step} has a 1904nonzero value, Info attempts to scroll the node text by that many lines; 1905if that is enough to bring the cursor back into the window, that is what 1906is done. The default value of this variable is 0, thus placing the 1907cursor (and the text it is attached to) in the center of the window. 1908Setting this variable to 1 causes a kind of ``smooth scrolling'' which 1909some people prefer. 1910 1911@item show-index-match 1912@vindex show-index-match 1913When set to @code{On}, the portion of the matched search string is 1914highlighted in the message which explains where the matched search 1915string was found. The default value of this variable is @code{On}. 1916When Info displays the location where an index match was found, 1917(@pxref{Searching Commands, , @code{next-index-match}}), the portion of the 1918string that you had typed is highlighted by displaying it in the inverse 1919case from its surrounding characters. 1920 1921@item visible-bell 1922@vindex visible-bell 1923When set to @code{On}, GNU Info attempts to flash the screen instead of 1924ringing the bell. This variable is @code{Off} by default. Of course, 1925Info can only flash the screen if the terminal allows it; in the case 1926that the terminal does not allow it, the setting of this variable has no 1927effect. However, you can make Info perform quietly by setting the 1928@code{errors-ring-bell} variable to @code{Off}. 1929 1930@end table 1931 1932 1933@node Custom Key Bindings 1934@chapter Customizing Key Bindings and Variables 1935 1936@cindex default key bindings, overriding 1937@cindex overriding default key bindings 1938@cindex customizing key bindings 1939@cindex key bindings, customizing 1940@cindex infokey 1941@cindex .info 1942@cindex .infokey 1943@cindex _info file (MS-DOS) 1944 1945For those whose editor/pager of choice is not Emacs and who are not 1946entirely satisfied with the --vi-keys option (@pxref{--vi-keys}), GNU 1947Info provides a way to define different key-to-command bindings and 1948variable settings from the defaults described in this document. 1949 1950On startup, GNU Info looks for a configuration file in the invoker's 1951HOME directory called @file{.info}@footnote{Due to the limitations of 1952DOS filesystems, the MS-DOS version of Info looks for a file 1953@file{_info} instead. If the @env{HOME} variable is not defined, Info 1954additionally looks in the current directory.}. If it is present, and 1955appears to contain Info configuration data, and was created with the 1956current version of the @code{infokey} command, then Info adopts the 1957key bindings and variable settings contained therein. 1958 1959The @file{.info} file contains compact, non-textual data for reasons of 1960efficiency and because its design was lifted wholesale from the GNU Less 1961program, which also does it that way. It must be created by compiling a 1962textual source file using the @code{infokey} command. 1963 1964@menu 1965* Invoking infokey:: 1966* infokey source format:: 1967@end menu 1968 1969 1970@node Invoking infokey 1971@section Invoking @command{infokey} 1972 1973@cindex invoking infokey 1974@cindex infokey, invoking 1975@cindex _infokey file (MS-DOS) 1976 1977@command{infokey} compiles a source file 1978(@file{$HOME/.infokey}@footnote{This file is named @file{_infokey} in 1979the MS-DOS version, and is looked for in the current directory if 1980@env{HOME} is undefined.} by default) containing Info customizations 1981into a binary format (@file{$HOME/.info} by default). GNU Info reads 1982the binary file at startup to override the default key bindings and 1983variable definitions. Synopsis: 1984 1985@example 1986infokey [@var{option}@dots{}] [@var{input-file}] 1987@end example 1988 1989Besides the standard @option{--help} and @option{--version}, the only 1990option is @option{--output @var{file}}. This tells @command{infokey} to 1991write the binary data to @var{file} instead of @file{$HOME/.info}. 1992 1993 1994@node infokey source format 1995@section @command{infokey} source format 1996 1997@cindex infokey source format 1998@cindex .infokey source format 1999@cindex format of .infokey source 2000 2001The format of the source file read by @command{infokey} is most easily 2002illustrated by example. For instance, here is a sample @file{.infokey} 2003source file suitable for aficionados of @command{vi} or @command{less}: 2004 2005@example 2006#info 2007j next-line 2008k prev-line 2009l forward-char 2010h backward-char 2011\kd next-line 2012\ku prev-line 2013\kr forward-char 2014\kl backward-char 2015\ scroll-forward 2016\kD scroll-forward-page-only 2017b scroll-backward 2018\kU scroll-backward-page-only 2019g beginning-of-node 2020\kh beginning-of-node 2021G end-of-node 2022\ke end-of-node 2023\t select-reference-this-line 2024- history-node 2025n next-node 2026p prev-node 2027u up-node 2028t top-node 2029d dir-node 2030#var 2031scroll-step=1 2032@end example 2033 2034The source file consists of one or more @dfn{sections}. 2035Each section starts with a line that identifies the type of section. 2036Possible sections are: 2037 2038@table @code 2039@item #info 2040Key bindings for Info windows. 2041The start of this section is indicated by a line containing just 2042@code{#info} by itself. If this is the first section in the source 2043file, the @code{#info} line can be omitted. The rest of this section 2044consists of lines of the form: 2045 2046@example 2047@var{string} whitespace @var{action} [ whitespace [ # comment ] ] newline 2048@end example 2049 2050Whitespace is any sequence of one or more spaces and/or tabs. Comment 2051is any sequence of any characters, excluding newline. @var{string} is 2052the key sequence which invokes the action. @var{action} is the name of 2053an Info command. The characters in @var{string} are interpreted 2054literally or prefixed by a caret (@code{^}) to indicate a control 2055character. A backslash followed by certain characters specifies input 2056keystrokes as follows: 2057 2058@table @code 2059@item \b 2060Backspace 2061@item \e 2062Escape (ESC) 2063@item \n 2064Newline 2065@item \r 2066Return 2067@item \t 2068Tab 2069@item \ku 2070Up arrow 2071@item \kd 2072Down arrow 2073@item \kl 2074Left arrow 2075@item \kr 2076Right arrow 2077@item \kU 2078Page Up 2079@item \kD 2080Page Down 2081@item \kh 2082HOME 2083@item \ke 2084END 2085@item \kx 2086Delete (DEL) 2087@item \m@var{x} 2088Meta-@var{x} where @var{x} is any character as described above. 2089@end table 2090 2091Backslash followed by any other character indicates that character is to 2092be taken literally. Characters which must be preceded by a backslash 2093include caret, space, tab, and backslash itself. 2094 2095@item #echo-area 2096Key bindings for the echo area. 2097The start of this section is indicated by a line containing just 2098@code{#echo-area} by itself. The rest of this section has a syntax 2099identical to that for the key definitions for the Info area, described 2100above. 2101 2102@item #var 2103Variable initializations. 2104The start of this section is indicated by a line containing just 2105@code{#var} by itself. Following this line is a list of variable 2106assignments, one per line. Each line consists of a variable name 2107(@xref{Variables},) followed by @code{=} followed by a value. 2108There may be no white space between the variable name and the @code{=}, 2109and all characters following the @code{=}, including white space, 2110are included in the value. 2111@end table 2112 2113Blank lines and lines starting with @code{#} are ignored, except for 2114the special section header lines. 2115 2116Key bindings defined in the @file{.info} file take precedence over GNU 2117Info's default key bindings, whether or not @samp{--vi-keys} is used. A 2118default key binding may be disabled by overriding it in the @file{.info} 2119file with the action @code{invalid}. In addition, @emph{all} default 2120key bindings can be disabled by adding this line @emph{anywhere} in the 2121relevant section: 2122 2123@example 2124#stop 2125@end example 2126 2127This will cause GNU Info to ignore all the default key commands for that 2128section. 2129 2130Beware: @code{#stop} can be dangerous. Since it disables all default 2131key bindings, you must supply enough new key bindings to enable all 2132necessary actions. Failure to bind any key to the @code{quit} command, 2133for example, can lead to frustration. 2134 2135The order in which key bindings are defined in the @file{.info} file is 2136not important, except that the command summary produced by the 2137@code{get-help-window} command only displays the @emph{first} key that 2138is bound to each command. 2139 2140 2141@c the following is incomplete 2142@ignore 2143@c node Info for Sys Admins 2144@c chapter Info for System Administrators 2145 2146This text describes some common ways of setting up an Info hierarchy 2147from scratch, and details the various options that are available when 2148installing Info. This text is designed for the person who is installing 2149GNU Info on the system; although users may find the information present 2150in this section interesting, none of it is vital to understanding how to 2151use GNU Info. 2152 2153@menu 2154* Setting the INFOPATH:: Where are my Info files kept? 2155* Editing the DIR node:: What goes in `DIR', and why? 2156* Storing Info files:: Alternate formats allow flexibility in setups. 2157* Using `localdir':: Building DIR on the fly. 2158* Example setups:: Some common ways to organize Info files. 2159@end menu 2160 2161@c node Setting the INFOPATH 2162@c section Setting the INFOPATH 2163 2164Where are my Info files kept? 2165 2166@c node Editing the DIR node 2167@c section Editing the DIR node 2168 2169What goes in `DIR', and why? 2170 2171@c node Storing Info files 2172@c section Storing Info files 2173 2174Alternate formats allow flexibility in setups. 2175 2176@c node Using `localdir' 2177@c section Using `localdir' 2178 2179Building DIR on the fly. 2180 2181@c node Example setups 2182@c section Example setups 2183 2184Some common ways to organize Info files. 2185@end ignore 2186 2187 2188@node Copying This Manual 2189@appendix Copying This Manual 2190 2191@menu 2192* GNU Free Documentation License:: License for copying this manual. 2193@end menu 2194 2195@include fdl.texi 2196 2197 2198@node Index 2199@appendix Index 2200 2201@printindex cp 2202 2203@bye 2204