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