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