info-stnd.texi 92 KB

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