1\input texinfo @c -*-texinfo-*- 2@comment %**start of header 3@setfilename info-stnd.info 4@settitle GNU Info 5@set InfoProgVer 2.11 6@paragraphindent none 7@footnotestyle end 8@synindex vr cp 9@synindex fn cp 10@synindex ky cp 11@comment %**end of header 12@comment $Id: info-stnd.texi,v 1.1 2004/10/28 18:14:09 zooey Exp $ 13 14@dircategory Texinfo documentation system 15@direntry 16* info program: (info-stnd). Standalone Info-reading program. 17@end direntry 18 19@ifinfo 20This file documents GNU Info, a program for viewing the on-line formatted 21versions of Texinfo files. This documentation is different from the 22documentation for the Info reader that is part of GNU Emacs. If you do 23not know how to use Info, but have a working Info reader, you should 24read that documentation first. 25 26Copyright @copyright{} 1992, 93, 96 Free Software Foundation, Inc. 27 28Permission is granted to make and distribute verbatim copies of this 29manual provided the copyright notice and this permission notice are 30preserved on all copies. 31 32@ignore 33Permission is granted to process this file through TeX and print the 34results, provided the printed document carries a copying permission 35notice identical to this one except for the removal of this paragraph 36(this paragraph not being relevant to the printed manual). 37@end ignore 38 39Permission is granted to copy and distribute modified versions of this 40manual under the conditions for verbatim copying, provided also that the 41sections entitled ``Copying'' and ``GNU General Public License'' are 42included exactly as in the original, and provided that the entire 43resulting derived work is distributed under the terms of a permission 44notice identical to this one. 45 46Permission is granted to copy and distribute translations of this manual 47into another language, under the above conditions for modified versions, 48except that this permission notice may be stated in a translation 49approved by the Free Software Foundation. 50@end ifinfo 51 52@titlepage 53@title GNU Info User's Guide 54@subtitle For GNU Info version @value{InfoProgVer} 55@author Brian J. Fox (bfox@@ai.mit.edu) 56@page 57@vskip 0pt plus 1filll 58Copyright @copyright{} 1992, 1993 Free Software Foundation 59 60Permission is granted to make and distribute verbatim copies of this 61manual provided the copyright notice and this permission notice are 62preserved on all copies. 63 64Permission is granted to copy and distribute modified versions of this 65manual under the conditions for verbatim copying, provided also that the 66sections entitled ``Copying'' and ``GNU General Public License'' are 67included exactly as in the original, and provided that the entire 68resulting derived work is distributed under the terms of a permission 69notice identical to this one. 70 71Permission is granted to copy and distribute translations of this manual 72into another language, under the above conditions for modified versions, 73except that this permission notice may be stated in a translation 74approved by the Free Software Foundation. 75@end titlepage 76 77@ifinfo 78@node Top, What is Info, (dir), (dir) 79@top The GNU Info Program 80 81This file documents GNU Info, a program for viewing the on-line 82formatted versions of Texinfo files, version @value{InfoProgVer}. This 83documentation is different from the documentation for the Info reader 84that is part of GNU Emacs. 85@end ifinfo 86 87@menu 88* What is Info:: 89* Options:: Options you can pass on the command line. 90* Cursor Commands:: Commands which move the cursor within a node. 91* Scrolling Commands:: Commands for moving the node around 92 in a window. 93* Node Commands:: Commands for selecting a new node. 94* Searching Commands:: Commands for searching an Info file. 95* Xref Commands:: Commands for selecting cross references. 96* Window Commands:: Commands which manipulate multiple windows. 97* Printing Nodes:: How to print out the contents of a node. 98* Miscellaneous Commands:: A few commands that defy categories. 99* Variables:: How to change the default behavior of Info. 100* GNU Info Global Index:: Global index containing keystrokes, 101 command names, variable names, 102 and general concepts. 103@end menu 104 105@node What is Info, Options, Top, Top 106@chapter What is Info? 107 108@iftex 109This file documents GNU Info, a program for viewing the on-line formatted 110versions of Texinfo files, version @value{InfoProgVer}. 111@end iftex 112 113@dfn{Info} is a program which is used to view Info files on an ASCII 114terminal. @dfn{Info files} are the result of processing Texinfo files 115with the program @code{makeinfo} or with one of the Emacs commands, such 116as @code{M-x texinfo-format-buffer}. Texinfo itself is a documentation 117system that uses a single source file to produce both on-line 118information and printed output. You can typeset and print the 119files that you read in Info.@refill 120 121@node Options, Cursor Commands, What is Info, Top 122@chapter Command Line Options 123@cindex command line options 124@cindex arguments, command line 125 126GNU Info accepts several options to control the initial node being 127viewed, and to specify which directories to search for Info files. Here 128is a template showing an invocation of GNU Info from the shell: 129 130@example 131info [--@var{option-name} @var{option-value}] @var{menu-item}@dots{} 132@end example 133 134The following @var{option-names} are available when invoking Info from 135the shell: 136 137@table @code 138@cindex directory path 139@item --directory @var{directory-path} 140@itemx -d @var{directory-path} 141Add @var{directory-path} to the list of directory paths searched when 142Info needs to find a file. You may issue @code{--directory} multiple 143times; once for each directory which contains Info files. 144Alternatively, you may specify a value for the environment variable 145@code{INFOPATH}; if @code{--directory} is not given, the value of 146@code{INFOPATH} is used. The value of @code{INFOPATH} is a colon 147separated list of directory names. If you do not supply @code{INFOPATH} 148or @code{--directory-path}, Info uses a default path. 149 150@item --file @var{filename} 151@itemx -f @var{filename} 152@cindex Info file, selecting 153Specify a particular Info file to visit. By default, Info visits 154the file @code{dir}; if you use this option, Info will start with 155@code{(@var{filename})Top} as the first file and node. 156 157@item --node @var{nodename} 158@itemx -n @var{nodename} 159@cindex node, selecting 160Specify a particular node to visit in the initial file that Info 161loads. This is especially useful in conjunction with 162@code{--file}@footnote{Of course, you can specify both the file and node 163in a @code{--node} command; but don't forget to escape the open and 164close parentheses from the shell as in: @code{info --node 165"(emacs)Buffers"}}. You may specify @code{--node} multiple times; for 166an interactive Info, each @var{nodename} is visited in its own window, 167for a non-interactive Info (such as when @code{--output} is given) each 168@var{nodename} is processed sequentially. 169 170@item --output @var{filename} 171@itemx -o @var{filename} 172@cindex file, outputting to 173@cindex outputting to a file 174Specify @var{filename} as the name of a file to which to direct output. 175Each node that Info visits will be output to @var{filename} instead of 176interactively viewed. A value of @code{-} for @var{filename} specifies 177the standard output. 178 179@item --subnodes 180@cindex @code{--subnodes}, command line option 181This option only has meaning when given in conjunction with 182@code{--output}. It means to recursively output the nodes appearing in 183the menus of each node being output. Menu items which resolve to 184external Info files are not output, and neither are menu items which are 185members of an index. Each node is only output once. 186 187@item --help 188@itemx -h 189Produces a relatively brief description of the available Info options. 190 191@item --version 192@cindex version information 193Prints the version information of Info and exits. 194 195@item @var{menu-item} 196@cindex menu, following 197Info treats its remaining arguments as the names of menu items. The 198first argument is a menu item in the initial node visited, while 199the second argument is a menu item in the first argument's node. 200You can easily move to the node of your choice by specifying the menu 201names which describe the path to that node. For example, 202 203@example 204info emacs buffers 205@end example 206 207@noindent 208first selects the menu item @samp{Emacs} in the node @samp{(dir)Top}, 209and then selects the menu item @samp{Buffers} in the node 210@samp{(emacs)Top}. 211@end table 212 213@node Cursor Commands, Scrolling Commands, Options, Top 214@chapter Moving the Cursor 215@cindex cursor, moving 216 217Many people find that reading screens of text page by page is made 218easier when one is able to indicate particular pieces of text with some 219kind of pointing device. Since this is the case, GNU Info (both the 220Emacs and standalone versions) have several commands which allow you to 221move the cursor about the screen. The notation used in this manual to 222describe keystrokes is identical to the notation used within the Emacs 223manual, and the GNU Readline manual. @xref{Characters, , Character 224Conventions, emacs, the GNU Emacs Manual}, if you are unfamiliar with the 225notation. 226 227The following table lists the basic cursor movement commands in Info. 228Each entry consists of the key sequence you should type to execute the 229cursor movement, the @code{M-x}@footnote{@code{M-x} is also a command; it 230invokes @code{execute-extended-command}. @xref{M-x, , Executing an 231extended command, emacs, the GNU Emacs Manual}, for more detailed 232information.} command name (displayed in parentheses), and a short 233description of what the command does. All of the cursor motion commands 234can take an @dfn{numeric} argument (@pxref{Miscellaneous Commands, 235@code{universal-argument}}), to find out how to supply them. With a 236numeric argument, the motion commands are simply executed that 237many times; for example, a numeric argument of 4 given to 238@code{next-line} causes the cursor to move down 4 lines. With a 239negative numeric argument, the motion is reversed; an argument of -4 240given to the @code{next-line} command would cause the cursor to move 241@emph{up} 4 lines. 242 243@table @asis 244@item @code{C-n} (@code{next-line}) 245@kindex C-n 246@findex next-line 247Move the cursor down to the next line. 248 249@item @code{C-p} (@code{prev-line}) 250@kindex C-p 251@findex prev-line 252Move the cursor up to the previous line. 253 254@item @code{C-a} (@code{beginning-of-line}) 255@kindex C-a, in Info windows 256@findex beginning-of-line 257Move the cursor to the start of the current line. 258 259@item @code{C-e} (@code{end-of-line}) 260@kindex C-e, in Info windows 261@findex end-of-line 262Move the cursor to the end of the current line. 263 264@item @code{C-f} (@code{forward-char}) 265@kindex C-f, in Info windows 266@findex forward-char 267Move the cursor forward a character. 268 269@item @code{C-b} (@code{backward-char}) 270@kindex C-b, in Info windows 271@findex backward-char 272Move the cursor backward a character. 273 274@item @code{M-f} (@code{forward-word}) 275@kindex M-f, in Info windows 276@findex forward-word 277Move the cursor forward a word. 278 279@item @code{M-b} (@code{backward-word}) 280@kindex M-b, in Info windows 281@findex backward-word 282Move the cursor backward a word. 283 284@item @code{M-<} (@code{beginning-of-node}) 285@itemx @code{b} 286@kindex b, in Info windows 287@kindex M-< 288@findex beginning-of-node 289Move the cursor to the start of the current node. 290 291@item @code{M->} (@code{end-of-node}) 292@kindex M-> 293@findex end-of-node 294Move the cursor to the end of the current node. 295 296@item @code{M-r} (@code{move-to-window-line}) 297@kindex M-r 298@findex move-to-window-line 299Move the cursor to a specific line of the window. Without a numeric 300argument, @code{M-r} moves the cursor to the start of the line in the 301center of the window. With a numeric argument of @var{n}, @code{M-r} 302moves the cursor to the start of the @var{n}th line in the window. 303@end table 304 305@node Scrolling Commands, Node Commands, Cursor Commands, Top 306@chapter Moving Text Within a Window 307@cindex scrolling 308 309Sometimes you are looking at a screenful of text, and only part of the 310current paragraph you are reading is visible on the screen. The 311commands detailed in this section are used to shift which part of the 312current node is visible on the screen. 313 314@table @asis 315@item @code{SPC} (@code{scroll-forward}) 316@itemx @code{C-v} 317@kindex SPC, in Info windows 318@kindex C-v 319@findex scroll-forward 320Shift the text in this window up. That is, show more of the node which 321is currently below the bottom of the window. With a numeric argument, 322show that many more lines at the bottom of the window; a numeric 323argument of 4 would shift all of the text in the window up 4 lines 324(discarding the top 4 lines), and show you four new lines at the bottom 325of the window. Without a numeric argument, @key{SPC} takes the bottom 326two lines of the window and places them at the top of the window, 327redisplaying almost a completely new screenful of lines. 328 329@item @code{DEL} (@code{scroll-backward}) 330@itemx @code{M-v} 331@kindex DEL, in Info windows 332@kindex M-v 333@findex scroll-backward 334Shift the text in this window down. The inverse of 335@code{scroll-forward}. 336@end table 337 338@cindex scrolling through node structure 339The @code{scroll-forward} and @code{scroll-backward} commands can also 340move forward and backward through the node structure of the file. If 341you press @key{SPC} while viewing the end of a node, or @key{DEL} while 342viewing the beginning of a node, what happens is controlled by the 343variable @code{scroll-behavior}. @xref{Variables, 344@code{scroll-behavior}}, for more information. 345 346@table @asis 347@item @code{C-l} (@code{redraw-display}) 348@kindex C-l 349@findex redraw-display 350Redraw the display from scratch, or shift the line containing the cursor 351to a specified location. With no numeric argument, @samp{C-l} clears 352the screen, and then redraws its entire contents. Given a numeric 353argument of @var{n}, the line containing the cursor is shifted so that 354it is on the @var{n}th line of the window. 355 356@item @code{C-x w} (@code{toggle-wrap}) 357@kindex C-w 358@findex toggle-wrap 359Toggles the state of line wrapping in the current window. Normally, 360lines which are longer than the screen width @dfn{wrap}, i.e., they are 361continued on the next line. Lines which wrap have a @samp{\} appearing 362in the rightmost column of the screen. You can cause such lines to be 363terminated at the rightmost column by changing the state of line 364wrapping in the window with @code{C-x w}. When a line which needs more 365space than one screen width to display is displayed, a @samp{$} appears 366in the rightmost column of the screen, and the remainder of the line is 367invisible. 368@end table 369 370@node Node Commands, Searching Commands, Scrolling Commands, Top 371@chapter Selecting a New Node 372@cindex nodes, selection of 373 374This section details the numerous Info commands which select a new node 375to view in the current window. 376 377The most basic node commands are @samp{n}, @samp{p}, @samp{u}, and 378@samp{l}. 379 380When you are viewing a node, the top line of the node contains some Info 381@dfn{pointers} which describe where the next, previous, and up nodes 382are. Info uses this line to move about the node structure of the file 383when you use the following commands: 384 385@table @asis 386@item @code{n} (@code{next-node}) 387@kindex n 388@findex next-node 389Select the `Next' node. 390 391@item @code{p} (@code{prev-node}) 392@kindex p 393@findex prev-node 394Select the `Prev' node. 395 396@item @code{u} (@code{up-node}) 397@kindex u 398@findex up-node 399Select the `Up' node. 400@end table 401 402You can easily select a node that you have already viewed in this window 403by using the @samp{l} command -- this name stands for "last", and 404actually moves through the list of already visited nodes for this 405window. @samp{l} with a negative numeric argument moves forward through 406the history of nodes for this window, so you can quickly step between 407two adjacent (in viewing history) nodes. 408 409@table @asis 410@item @code{l} (@code{history-node}) 411@kindex l 412@findex history-node 413Select the most recently selected node in this window. 414@end table 415 416Two additional commands make it easy to select the most commonly 417selected nodes; they are @samp{t} and @samp{d}. 418 419@table @asis 420@item @code{t} (@code{top-node}) 421@kindex t 422@findex top-node 423Select the node @samp{Top} in the current Info file. 424 425@item @code{d} (@code{dir-node}) 426@kindex d 427@findex dir-node 428Select the directory node (i.e., the node @samp{(dir)}). 429@end table 430 431Here are some other commands which immediately result in the selection 432of a different node in the current window: 433 434@table @asis 435@item @code{<} (@code{first-node}) 436@kindex < 437@findex first-node 438Selects the first node which appears in this file. This node is most 439often @samp{Top}, but it does not have to be. 440 441@item @code{>} (@code{last-node}) 442@kindex > 443@findex last-node 444Select the last node which appears in this file. 445 446@item @code{]} (@code{global-next-node}) 447@kindex ] 448@findex global-next-node 449Move forward or down through node structure. If the node that you are 450currently viewing has a @samp{Next} pointer, that node is selected. 451Otherwise, if this node has a menu, the first menu item is selected. If 452there is no @samp{Next} and no menu, the same process is tried with the 453@samp{Up} node of this node. 454 455@item @code{[} (@code{global-prev-node}) 456@kindex [ 457@findex global-prev-node 458Move backward or up through node structure. If the node that you are 459currently viewing has a @samp{Prev} pointer, that node is selected. 460Otherwise, if the node has an @samp{Up} pointer, that node is selected, 461and if it has a menu, the last item in the menu is selected. 462@end table 463 464You can get the same behavior as @code{global-next-node} and 465@code{global-prev-node} while simply scrolling through the file with 466@key{SPC} and @key{DEL}; @xref{Variables, @code{scroll-behavior}}, for 467more information. 468 469@table @asis 470@item @code{g} (@code{goto-node}) 471@kindex g 472@findex goto-node 473Read the name of a node and select it. No completion is done while 474reading the node name, since the desired node may reside in a separate 475file. The node must be typed exactly as it appears in the Info file. A 476file name may be included as with any node specification, for example 477 478@example 479@code{g(emacs)Buffers} 480@end example 481 482finds the node @samp{Buffers} in the Info file @file{emacs}. 483 484@item @code{C-x k} (@code{kill-node}) 485@kindex C-x k 486@findex kill-node 487Kill a node. The node name is prompted for in the echo area, with a 488default of the current node. @dfn{Killing} a node means that Info tries 489hard to forget about it, removing it from the list of history nodes kept 490for the window where that node is found. Another node is selected in 491the window which contained the killed node. 492 493@item @code{C-x C-f} (@code{view-file}) 494@kindex C-x C-f 495@findex view-file 496Read the name of a file and selects the entire file. The command 497@example 498@code{C-x C-f @var{filename}} 499@end example 500is equivalent to typing 501@example 502@code{g(@var{filename})*} 503@end example 504 505@item @code{C-x C-b} (@code{list-visited-nodes}) 506@kindex C-x C-b 507@findex list-visited-nodes 508Make a window containing a menu of all of the currently visited nodes. 509This window becomes the selected window, and you may use the standard 510Info commands within it. 511 512@item @code{C-x b} (@code{select-visited-node}) 513@kindex C-x b 514@findex select-visited-node 515Select a node which has been previously visited in a visible window. 516This is similar to @samp{C-x C-b} followed by @samp{m}, but no window is 517created. 518@end table 519 520@node Searching Commands, Xref Commands, Node Commands, Top 521@chapter Searching an Info File 522@cindex searching 523 524GNU Info allows you to search for a sequence of characters throughout an 525entire Info file, search through the indices of an Info file, or find 526areas within an Info file which discuss a particular topic. 527 528@table @asis 529@item @code{s} (@code{search}) 530@kindex s 531@findex search 532Read a string in the echo area and search for it. 533 534@item @code{C-s} (@code{isearch-forward}) 535@kindex C-s 536@findex isearch-forward 537Interactively search forward through the Info file for a string as you 538type it. 539 540@item @code{C-r} (@code{isearch-backward}) 541@kindex C-r 542@findex isearch-backward 543Interactively search backward through the Info file for a string as 544you type it. 545 546@item @code{i} (@code{index-search}) 547@kindex i 548@findex index-search 549Look up a string in the indices for this Info file, and select a node 550where the found index entry points to. 551 552@item @code{,} (@code{next-index-match}) 553@kindex , 554@findex next-index-match 555Move to the node containing the next matching index item from the last 556@samp{i} command. 557@end table 558 559The most basic searching command is @samp{s} (@code{search}). The 560@samp{s} command prompts you for a string in the echo area, and then 561searches the remainder of the Info file for an occurrence of that string. 562If the string is found, the node containing it is selected, and the 563cursor is left positioned at the start of the found string. Subsequent 564@samp{s} commands show you the default search string within @samp{[} and 565@samp{]}; pressing @key{RET} instead of typing a new string will use the 566default search string. 567 568@dfn{Incremental searching} is similar to basic searching, but the 569string is looked up while you are typing it, instead of waiting until 570the entire search string has been specified. 571 572@node Xref Commands, Window Commands, Searching Commands, Top 573@chapter Selecting Cross References 574 575We have already discussed the @samp{Next}, @samp{Prev}, and @samp{Up} 576pointers which appear at the top of a node. In addition to these 577pointers, a node may contain other pointers which refer you to a 578different node, perhaps in another Info file. Such pointers are called 579@dfn{cross references}, or @dfn{xrefs} for short. 580 581@menu 582* Parts of an Xref:: What a cross reference is made of. 583* Selecting Xrefs:: Commands for selecting menu or note items. 584@end menu 585 586@node Parts of an Xref, Selecting Xrefs, , Xref Commands 587@section Parts of an Xref 588 589Cross references have two major parts: the first part is called the 590@dfn{label}; it is the name that you can use to refer to the cross 591reference, and the second is the @dfn{target}; it is the full name of 592the node that the cross reference points to. 593 594The target is separated from the label by a colon @samp{:}; first the 595label appears, and then the target. For example, in the sample menu 596cross reference below, the single colon separates the label from the 597target. 598 599@example 600* Foo Label: Foo Target. More information about Foo. 601@end example 602 603Note the @samp{.} which ends the name of the target. The @samp{.} is 604not part of the target; it serves only to let Info know where the target 605name ends. 606 607A shorthand way of specifying references allows two adjacent colons to 608stand for a target name which is the same as the label name: 609 610@example 611* Foo Commands:: Commands pertaining to Foo. 612@end example 613 614In the above example, the name of the target is the same as the name of 615the label, in this case @code{Foo Commands}. 616 617You will normally see two types of cross reference while viewing nodes: 618@dfn{menu} references, and @dfn{note} references. Menu references 619appear within a node's menu; they begin with a @samp{*} at the beginning 620of a line, and continue with a label, a target, and a comment which 621describes what the contents of the node pointed to contains. 622 623Note references appear within the body of the node text; they begin with 624@code{*Note}, and continue with a label and a target. 625 626Like @samp{Next}, @samp{Prev}, and @samp{Up} pointers, cross references 627can point to any valid node. They are used to refer you to a place 628where more detailed information can be found on a particular subject. 629Here is a cross reference which points to a node within the Texinfo 630documentation: @xref{xref, , Writing an Xref, texinfo, the Texinfo 631Manual}, for more information on creating your own texinfo cross 632references. 633 634@node Selecting Xrefs, , Parts of an Xref, Xref Commands 635@section Selecting Xrefs 636 637The following table lists the Info commands which operate on menu items. 638 639@table @asis 640@item @code{1} (@code{menu-digit}) 641@itemx @code{2} @dots{} @code{9} 642@cindex 1 @dots{} 9, in Info windows 643@kindex 1 @dots{} 9, in Info windows 644@findex menu-digit 645Within an Info window, pressing a single digit, (such as @samp{1}), 646selects that menu item, and places its node in the current window. 647For convenience, there is one exception; pressing @samp{0} selects the 648@emph{last} item in the node's menu. 649 650@item @code{0} (@code{last-menu-item}) 651@kindex 0, in Info windows 652@findex last-menu-item 653Select the last item in the current node's menu. 654 655@item @code{m} (@code{menu-item}) 656@kindex m 657@findex menu-item 658Reads the name of a menu item in the echo area and selects its node. 659Completion is available while reading the menu label. 660 661@item @code{M-x find-menu} 662@findex find-menu 663Move the cursor to the start of this node's menu. 664@end table 665 666This table lists the Info commands which operate on note cross references. 667 668@table @asis 669@item @code{f} (@code{xref-item}) 670@itemx @code{r} 671@kindex f 672@kindex r 673@findex xref-item 674Reads the name of a note cross reference in the echo area and selects 675its node. Completion is available while reading the cross reference 676label. 677@end table 678 679Finally, the next few commands operate on menu or note references alike: 680 681@table @asis 682@item @code{TAB} (@code{move-to-next-xref}) 683@kindex TAB, in Info windows 684@findex move-to-next-xref 685Move the cursor to the start of the next nearest menu item or note 686reference in this node. You can then use @key{RET} 687(@code{select-reference-this-line}) to select the menu or note reference. 688 689@item @code{M-TAB} (@code{move-to-prev-xref}) 690@kindex M-TAB, in Info windows 691@findex move-to-prev-xref 692Move the cursor the start of the nearest previous menu item or note 693reference in this node. 694 695@item @code{RET} (@code{select-reference-this-line}) 696@kindex RET, in Info windows 697@findex select-reference-this-line 698Select the menu item or note reference appearing on this line. 699@end table 700 701@node Window Commands, Printing Nodes, Xref Commands, Top 702@chapter Manipulating Multiple Windows 703@cindex windows, manipulating 704 705A @dfn{window} is a place to show the text of a node. Windows have a 706view area where the text of the node is displayed, and an associated 707@dfn{mode line}, which briefly describes the node being viewed. 708 709GNU Info supports multiple windows appearing in a single screen; each 710window is separated from the next by its modeline. At any time, there 711is only one @dfn{active} window, that is, the window in which the cursor 712appears. There are commands available for creating windows, changing 713the size of windows, selecting which window is active, and for deleting 714windows. 715 716@menu 717* The Mode Line:: What appears in the mode line? 718* Basic Windows:: Manipulating windows in Info. 719* The Echo Area:: Used for displaying errors and reading input. 720@end menu 721 722@node The Mode Line, Basic Windows, , Window Commands 723@section The Mode Line 724 725A @dfn{mode line} is a line of inverse video which appears at the bottom 726of an Info window. It describes the contents of the window just above 727it; this information includes the name of the file and node appearing in 728that window, the number of screen lines it takes to display the node, 729and the percentage of text that is above the top of the window. It can 730also tell you if the indirect tags table for this Info file needs to be 731updated, and whether or not the Info file was compressed when stored on 732disk. 733 734Here is a sample mode line for a window containing an uncompressed file 735named @file{dir}, showing the node @samp{Top}. 736 737@example 738@group 739-----Info: (dir)Top, 40 lines --Top--------------------------------------- 740 ^^ ^ ^^^ ^^ 741 (file)Node #lines where 742@end group 743@end example 744 745When a node comes from a file which is compressed on disk, this is 746indicated in the mode line with two small @samp{z}'s. In addition, if 747the Info file containing the node has been split into subfiles, the name 748of the subfile containing the node appears in the modeline as well: 749 750@example 751--zz-Info: (emacs)Top, 291 lines --Top-- Subfile: emacs-1.Z--------------- 752@end example 753 754When Info makes a node internally, such that there is no corresponding 755info file on disk, the name of the node is surrounded by asterisks 756(@samp{*}). The name itself tells you what the contents of the window 757are; the sample mode line below shows an internally constructed node 758showing possible completions: 759 760@example 761-----Info: *Completions*, 7 lines --All----------------------------------- 762@end example 763 764@node Basic Windows, The Echo Area, The Mode Line, Window Commands 765@section Window Commands 766 767It can be convenient to view more than one node at a time. To allow 768this, Info can display more than one @dfn{window}. Each window has its 769own mode line (@pxref{The Mode Line}) and history of nodes viewed in that 770window (@pxref{Node Commands, , @code{history-node}}). 771 772@table @asis 773@item @code{C-x o} (@code{next-window}) 774@cindex windows, selecting 775@kindex C-x o 776@findex next-window 777Select the next window on the screen. Note that the echo area can only be 778selected if it is already in use, and you have left it temporarily. 779Normally, @samp{C-x o} simply moves the cursor into the next window on 780the screen, or if you are already within the last window, into the first 781window on the screen. Given a numeric argument, @samp{C-x o} moves over 782that many windows. A negative argument causes @samp{C-x o} to select 783the previous window on the screen. 784 785@item @code{M-x prev-window} 786@findex prev-window 787Select the previous window on the screen. This is identical to 788@samp{C-x o} with a negative argument. 789 790@item @code{C-x 2} (@code{split-window}) 791@cindex windows, creating 792@kindex C-x 2 793@findex split-window 794Split the current window into two windows, both showing the same node. 795Each window is one half the size of the original window, and the cursor 796remains in the original window. The variable @code{automatic-tiling} 797can cause all of the windows on the screen to be resized for you 798automatically, please @pxref{Variables, , automatic-tiling} for more 799information. 800 801@item @code{C-x 0} (@code{delete-window}) 802@cindex windows, deleting 803@kindex C-x 0 804@findex delete-window 805Delete the current window from the screen. If you have made too many 806windows and your screen appears cluttered, this is the way to get rid of 807some of them. 808 809@item @code{C-x 1} (@code{keep-one-window}) 810@kindex C-x 1 811@findex keep-one-window 812Delete all of the windows excepting the current one. 813 814@item @code{ESC C-v} (@code{scroll-other-window}) 815@kindex ESC C-v, in Info windows 816@findex scroll-other-window 817Scroll the other window, in the same fashion that @samp{C-v} might 818scroll the current window. Given a negative argument, scroll the 819"other" window backward. 820 821@item @code{C-x ^} (@code{grow-window}) 822@kindex C-x ^ 823@findex grow-window 824Grow (or shrink) the current window. Given a numeric argument, grow 825the current window that many lines; with a negative numeric argument, 826shrink the window instead. 827 828@item @code{C-x t} (@code{tile-windows}) 829@cindex tiling 830@kindex C-x t 831@findex tile-windows 832Divide the available screen space among all of the visible windows. 833Each window is given an equal portion of the screen in which to display 834its contents. The variable @code{automatic-tiling} can cause 835@code{tile-windows} to be called when a window is created or deleted. 836@xref{Variables, , @code{automatic-tiling}}. 837@end table 838 839@node The Echo Area, , Basic Windows, Window Commands 840@section The Echo Area 841@cindex echo area 842 843The @dfn{echo area} is a one line window which appears at the bottom of 844the screen. It is used to display informative or error messages, and to 845read lines of input from you when that is necessary. Almost all of the 846commands available in the echo area are identical to their Emacs 847counterparts, so please refer to that documentation for greater depth of 848discussion on the concepts of editing a line of text. The following 849table briefly lists the commands that are available while input is being 850read in the echo area: 851 852@table @asis 853@item @code{C-f} (@code{echo-area-forward}) 854@kindex C-f, in the echo area 855@findex echo-area-forward 856Move forward a character. 857 858@item @code{C-b} (@code{echo-area-backward}) 859@kindex C-b, in the echo area 860@findex echo-area-backward 861Move backward a character. 862 863@item @code{C-a} (@code{echo-area-beg-of-line}) 864@kindex C-a, in the echo area 865@findex echo-area-beg-of-line 866Move to the start of the input line. 867 868@item @code{C-e} (@code{echo-area-end-of-line}) 869@kindex C-e, in the echo area 870@findex echo-area-end-of-line 871Move to the end of the input line. 872 873@item @code{M-f} (@code{echo-area-forward-word}) 874@kindex M-f, in the echo area 875@findex echo-area-forward-word 876Move forward a word. 877 878@item @code{M-b} (@code{echo-area-backward-word}) 879@kindex M-b, in the echo area 880@findex echo-area-backward-word 881Move backward a word. 882 883@item @code{C-d} (@code{echo-area-delete}) 884@kindex C-d, in the echo area 885@findex echo-area-delete 886Delete the character under the cursor. 887 888@item @code{DEL} (@code{echo-area-rubout}) 889@kindex DEL, in the echo area 890@findex echo-area-rubout 891Delete the character behind the cursor. 892 893@item @code{C-g} (@code{echo-area-abort}) 894@kindex C-g, in the echo area 895@findex echo-area-abort 896Cancel or quit the current operation. If completion is being read, 897@samp{C-g} discards the text of the input line which does not match any 898completion. If the input line is empty, @samp{C-g} aborts the calling 899function. 900 901@item @code{RET} (@code{echo-area-newline}) 902@kindex RET, in the echo area 903@findex echo-area-newline 904Accept (or forces completion of) the current input line. 905 906@item @code{C-q} (@code{echo-area-quoted-insert}) 907@kindex C-q, in the echo area 908@findex echo-area-quoted-insert 909Insert the next character verbatim. This is how you can insert control 910characters into a search string, for example. 911 912@item @var{printing character} (@code{echo-area-insert}) 913@kindex printing characters, in the echo area 914@findex echo-area-insert 915Insert the character. 916 917@item @code{M-TAB} (@code{echo-area-tab-insert}) 918@kindex M-TAB, in the echo area 919@findex echo-area-tab-insert 920Insert a TAB character. 921 922@item @code{C-t} (@code{echo-area-transpose-chars}) 923@kindex C-t, in the echo area 924@findex echo-area-transpose-chars 925Transpose the characters at the cursor. 926@end table 927 928The next group of commands deal with @dfn{killing}, and @dfn{yanking} 929text. For an in depth discussion of killing and yanking, 930@pxref{Killing, , Killing and Deleting, emacs, the GNU Emacs Manual} 931 932@table @asis 933@item @code{M-d} (@code{echo-area-kill-word}) 934@kindex M-d, in the echo area 935@findex echo-area-kill-word 936Kill the word following the cursor. 937 938@item @code{M-DEL} (@code{echo-area-backward-kill-word}) 939@kindex M-DEL, in the echo area 940@findex echo-area-backward-kill-word 941Kill the word preceding the cursor. 942 943@item @code{C-k} (@code{echo-area-kill-line}) 944@kindex C-k, in the echo area 945@findex echo-area-kill-line 946Kill the text from the cursor to the end of the line. 947 948@item @code{C-x DEL} (@code{echo-area-backward-kill-line}) 949@kindex C-x DEL, in the echo area 950@findex echo-area-backward-kill-line 951Kill the text from the cursor to the beginning of the line. 952 953@item @code{C-y} (@code{echo-area-yank}) 954@kindex C-y, in the echo area 955@findex echo-area-yank 956Yank back the contents of the last kill. 957 958@item @code{M-y} (@code{echo-area-yank-pop}) 959@kindex M-y, in the echo area 960@findex echo-area-yank-pop 961Yank back a previous kill, removing the last yanked text first. 962@end table 963 964Sometimes when reading input in the echo area, the command that needed 965input will only accept one of a list of several choices. The choices 966represent the @dfn{possible completions}, and you must respond with one 967of them. Since there are a limited number of responses you can make, 968Info allows you to abbreviate what you type, only typing as much of the 969response as is necessary to uniquely identify it. In addition, you can 970request Info to fill in as much of the response as is possible; this 971is called @dfn{completion}. 972 973The following commands are available when completing in the echo area: 974 975@table @asis 976@item @code{TAB} (@code{echo-area-complete}) 977@itemx @code{SPC} 978@kindex TAB, in the echo area 979@kindex SPC, in the echo area 980@findex echo-area-complete 981Insert as much of a completion as is possible. 982 983@item @code{?} (@code{echo-area-possible-completions}) 984@kindex ?, in the echo area 985@findex echo-area-possible-completions 986Display a window containing a list of the possible completions of what 987you have typed so far. For example, if the available choices are: 988 989@example 990@group 991bar 992foliate 993food 994forget 995@end group 996@end example 997 998@noindent 999and you have typed an @samp{f}, followed by @samp{?}, the possible 1000completions would contain: 1001 1002@example 1003@group 1004foliate 1005food 1006forget 1007@end group 1008@end example 1009 1010@noindent 1011i.e., all of the choices which begin with @samp{f}. Pressing @key{SPC} 1012or @key{TAB} would result in @samp{fo} appearing in the echo area, since 1013all of the choices which begin with @samp{f} continue with @samp{o}. 1014Now, typing @samp{l} followed by @samp{TAB} results in @samp{foliate} 1015appearing in the echo area, since that is the only choice which begins 1016with @samp{fol}. 1017 1018@item @code{ESC C-v} (@code{echo-area-scroll-completions-window}) 1019@kindex ESC C-v, in the echo area 1020@findex echo-area-scroll-completions-window 1021Scroll the completions window, if that is visible, or the "other" 1022window if not. 1023@end table 1024 1025@node Printing Nodes, Miscellaneous Commands, Window Commands, Top 1026@chapter Printing Out Nodes 1027@cindex printing 1028 1029You may wish to print out the contents of a node as a quick reference 1030document for later use. Info provides you with a command for doing 1031this. In general, we recommend that you use @TeX{} to format the 1032document and print sections of it, by running @code{tex} on the Texinfo 1033source file. 1034 1035@table @asis 1036@item @code{M-x print-node} 1037@findex print-node 1038@cindex INFO_PRINT_COMMAND, environment variable 1039Pipe the contents of the current node through the command in the 1040environment variable @code{INFO_PRINT_COMMAND}. If the variable does not 1041exist, the node is simply piped to @code{lpr}. 1042@end table 1043 1044@node Miscellaneous Commands, Variables, Printing Nodes, Top 1045@chapter Miscellaneous Commands 1046 1047GNU Info contains several commands which self-document GNU Info: 1048 1049@table @asis 1050@item @code{M-x describe-command} 1051@cindex functions, describing 1052@cindex commands, describing 1053@findex describe-command 1054Read the name of an Info command in the echo area and then display a 1055brief description of what that command does. 1056 1057@item @code{M-x describe-key} 1058@cindex keys, describing 1059@findex describe-key 1060Read a key sequence in the echo area, and then display the name and 1061documentation of the Info command that the key sequence invokes. 1062 1063@item @code{M-x describe-variable} 1064Read the name of a variable in the echo area and then display a brief 1065description of what the variable affects. 1066 1067@item @code{M-x where-is} 1068@findex where-is 1069Read the name of an Info command in the echo area, and then display 1070a key sequence which can be typed in order to invoke that command. 1071 1072@item @code{C-h} (@code{get-help-window}) 1073@itemx @code{?} 1074@kindex C-h 1075@kindex ?, in Info windows 1076@findex get-help-window 1077Create (or Move into) the window displaying @code{*Help*}, and place 1078a node containing a quick reference card into it. This window displays 1079the most concise information about GNU Info available. 1080 1081@item @code{h} (@code{get-info-help-node}) 1082@kindex h 1083@findex get-info-help-node 1084Try hard to visit the node @code{(info)Help}. The Info file 1085@file{info.texi} distributed with GNU Info contains this node. Of 1086course, the file must first be processed with @code{makeinfo}, and then 1087placed into the location of your Info directory. 1088@end table 1089 1090Here are the commands for creating a numeric argument: 1091 1092@table @asis 1093@item @code{C-u} (@code{universal-argument}) 1094@cindex numeric arguments 1095@kindex C-u 1096@findex universal-argument 1097Start (or multiply by 4) the current numeric argument. @samp{C-u} is 1098a good way to give a small numeric argument to cursor movement or 1099scrolling commands; @samp{C-u C-v} scrolls the screen 4 lines, while 1100@samp{C-u C-u C-n} moves the cursor down 16 lines. 1101 1102@item @code{M-1} (@code{add-digit-to-numeric-arg}) 1103@itemx @code{M-2} @dots{} @code{M-9} 1104@kindex M-1 @dots{} M-9 1105@findex add-digit-to-numeric-arg 1106Add the digit value of the invoking key to the current numeric 1107argument. Once Info is reading a numeric argument, you may just type 1108the digits of the argument, without the Meta prefix. For example, you 1109might give @samp{C-l} a numeric argument of 32 by typing: 1110 1111@example 1112@kbd{C-u 3 2 C-l} 1113@end example 1114 1115@noindent 1116or 1117 1118@example 1119@kbd{M-3 2 C-l} 1120@end example 1121@end table 1122 1123@samp{C-g} is used to abort the reading of a multi-character key 1124sequence, to cancel lengthy operations (such as multi-file searches) and 1125to cancel reading input in the echo area. 1126 1127@table @asis 1128@item @code{C-g} (@code{abort-key}) 1129@cindex cancelling typeahead 1130@cindex cancelling the current operation 1131@kindex C-g, in Info windows 1132@findex abort-key 1133Cancel current operation. 1134@end table 1135 1136The @samp{q} command of Info simply quits running Info. 1137 1138@table @asis 1139@item @code{q} (@code{quit}) 1140@cindex quitting 1141@kindex q 1142@findex quit 1143Exit GNU Info. 1144@end table 1145 1146If the operating system tells GNU Info that the screen is 60 lines tall, 1147and it is actually only 40 lines tall, here is a way to tell Info that 1148the operating system is correct. 1149 1150@table @asis 1151@item @code{M-x set-screen-height} 1152@findex set-screen-height 1153@cindex screen, changing the height of 1154Read a height value in the echo area and set the height of the 1155displayed screen to that value. 1156@end table 1157 1158Finally, Info provides a convenient way to display footnotes which might 1159be associated with the current node that you are viewing: 1160 1161@table @asis 1162@item @code{ESC C-f} (@code{show-footnotes}) 1163@kindex ESC C-f 1164@findex show-footnotes 1165@cindex footnotes, displaying 1166Show the footnotes (if any) associated with the current node in another 1167window. You can have Info automatically display the footnotes 1168associated with a node when the node is selected by setting the variable 1169@code{automatic-footnotes}. @xref{Variables, , @code{automatic-footnotes}}. 1170@end table 1171 1172@node Variables, GNU Info Global Index, Miscellaneous Commands, Top 1173@chapter Manipulating Variables 1174 1175GNU Info contains several @dfn{variables} whose values are looked at by 1176various Info commands. You can change the values of these variables, 1177and thus change the behavior of Info to more closely match your 1178environment and Info file reading manner. 1179 1180@table @asis 1181@item @code{M-x set-variable} 1182@cindex variables, setting 1183@findex set-variable 1184Read the name of a variable, and the value for it, in the echo area and 1185then set the variable to that value. Completion is available when 1186reading the variable name; often, completion is available when reading 1187the value to give to the variable, but that depends on the variable 1188itself. If a variable does @emph{not} supply multiple choices to 1189complete over, it expects a numeric value. 1190 1191@item @code{M-x describe-variable} 1192@cindex variables, describing 1193@findex describe-variable 1194Read the name of a variable in the echo area and then display a brief 1195description of what the variable affects. 1196@end table 1197 1198Here is a list of the variables that you can set in Info. 1199 1200@table @code 1201@item automatic-footnotes 1202@vindex automatic-footnotes 1203When set to @code{On}, footnotes appear and disappear automatically. 1204This variable is @code{On} by default. When a node is selected, a 1205window containing the footnotes which appear in that node is created, 1206and the footnotes are displayed within the new window. The window that 1207Info creates to contain the footnotes is called @samp{*Footnotes*}. If 1208a node is selected which contains no footnotes, and a @samp{*Footnotes*} 1209window is on the screen, the @samp{*Footnotes*} window is deleted. 1210Footnote windows created in this fashion are not automatically tiled so 1211that they can use as little of the display as is possible. 1212 1213@item automatic-tiling 1214@vindex automatic-tiling 1215When set to @code{On}, creating or deleting a window resizes other 1216windows. This variable is @code{Off} by default. Normally, typing 1217@samp{C-x 2} divides the current window into two equal parts. When 1218@code{automatic-tiling} is set to @code{On}, all of the windows are 1219resized automatically, keeping an equal number of lines visible in each 1220window. There are exceptions to the automatic tiling; specifically, the 1221windows @samp{*Completions*} and @samp{*Footnotes*} are @emph{not} 1222resized through automatic tiling; they remain their original size. 1223 1224@item visible-bell 1225@vindex visible-bell 1226When set to @code{On}, GNU Info attempts to flash the screen instead of 1227ringing the bell. This variable is @code{Off} by default. Of course, 1228Info can only flash the screen if the terminal allows it; in the case 1229that the terminal does not allow it, the setting of this variable has no 1230effect. However, you can make Info perform quietly by setting the 1231@code{errors-ring-bell} variable to @code{Off}. 1232 1233@item errors-ring-bell 1234@vindex errors-ring-bell 1235When set to @code{On}, errors cause the bell to ring. The default 1236setting of this variable is @code{On}. 1237 1238@item gc-compressed-files 1239@vindex gc-compressed-files 1240When set to @code{On}, Info garbage collects files which had to be 1241uncompressed. The default value of this variable is @code{Off}. 1242Whenever a node is visited in Info, the Info file containing that node 1243is read into core, and Info reads information about the tags and nodes 1244contained in that file. Once the tags information is read by Info, it 1245is never forgotten. However, the actual text of the nodes does not need 1246to remain in core unless a particular Info window needs it. For 1247non-compressed files, the text of the nodes does not remain in core when 1248it is no longer in use. But de-compressing a file can be a time 1249consuming operation, and so Info tries hard not to do it twice. 1250@code{gc-compressed-files} tells Info it is okay to garbage collect the 1251text of the nodes of a file which was compressed on disk. 1252 1253@item show-index-match 1254@vindex show-index-match 1255When set to @code{On}, the portion of the matched search string is 1256highlighted in the message which explains where the matched search 1257string was found. The default value of this variable is @code{On}. 1258When Info displays the location where an index match was found, 1259(@pxref{Searching Commands, , @code{next-index-match}}), the portion of the 1260string that you had typed is highlighted by displaying it in the inverse 1261case from its surrounding characters. 1262 1263@item scroll-behavior 1264@vindex scroll-behavior 1265Control what happens when forward scrolling is requested at the end of 1266a node, or when backward scrolling is requested at the beginning of a 1267node. The default value for this variable is @code{Continuous}. There 1268are three possible values for this variable: 1269 1270@table @code 1271@item Continuous 1272Try to get the first item in this node's menu, or failing that, the 1273@samp{Next} node, or failing that, the @samp{Next} of the @samp{Up}. 1274This behavior is identical to using the @samp{]} 1275(@code{global-next-node}) and @samp{[} (@code{global-prev-node}) 1276commands. 1277 1278@item Next Only 1279Only try to get the @samp{Next} node. 1280 1281@item Page Only 1282Simply give up, changing nothing. If @code{scroll-behavior} is 1283@code{Page Only}, no scrolling command can change the node that is being 1284viewed. 1285@end table 1286 1287@item scroll-step 1288@vindex scroll-step 1289The number of lines to scroll when the cursor moves out of the window. 1290Scrolling happens automatically if the cursor has moved out of the 1291visible portion of the node text when it is time to display. Usually 1292the scrolling is done so as to put the cursor on the center line of the 1293current window. However, if the variable @code{scroll-step} has a 1294nonzero value, Info attempts to scroll the node text by that many lines; 1295if that is enough to bring the cursor back into the window, that is what 1296is done. The default value of this variable is 0, thus placing the 1297cursor (and the text it is attached to) in the center of the window. 1298Setting this variable to 1 causes a kind of "smooth scrolling" which 1299some people prefer. 1300 1301@item ISO-Latin 1302@cindex ISO Latin characters 1303@vindex ISO-Latin 1304When set to @code{On}, Info accepts and displays ISO Latin characters. 1305By default, Info assumes an ASCII character set. @code{ISO-Latin} tells 1306Info that it is running in an environment where the European standard 1307character set is in use, and allows you to input such characters to 1308Info, as well as display them. 1309@end table 1310 1311 1312 1313@c the following is incomplete 1314@ignore 1315@c node Info for Sys Admins 1316@c chapter Info for System Administrators 1317 1318This text describes some common ways of setting up an Info hierarchy 1319from scratch, and details the various options that are available when 1320installing Info. This text is designed for the person who is installing 1321GNU Info on the system; although users may find the information present 1322in this section interesting, none of it is vital to understanding how to 1323use GNU Info. 1324 1325@menu 1326* Setting the INFOPATH:: Where are my Info files kept? 1327* Editing the DIR node:: What goes in `DIR', and why? 1328* Storing Info files:: Alternate formats allow flexibility in setups. 1329* Using `localdir':: Building DIR on the fly. 1330* Example setups:: Some common ways to organize Info files. 1331@end menu 1332 1333@c node Setting the INFOPATH 1334@c section Setting the INFOPATH 1335 1336Where are my Info files kept? 1337 1338@c node Editing the DIR node 1339@c section Editing the DIR node 1340 1341What goes in `DIR', and why? 1342 1343@c node Storing Info files 1344@c section Storing Info files 1345 1346Alternate formats allow flexibility in setups. 1347 1348@c node Using `localdir' 1349@c section Using `localdir' 1350 1351Building DIR on the fly. 1352 1353@c node Example setups 1354@c section Example setups 1355 1356Some common ways to organize Info files. 1357@end ignore 1358 1359@node GNU Info Global Index, , Variables, Top 1360@appendix Global Index 1361 1362@printindex cp 1363 1364@contents 1365@bye 1366