File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / readline / doc / rluserman.info
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Mar 17 01:01:01 2021 UTC (3 years, 3 months ago) by misho
Branches: readline, MAIN
CVS tags: v8_2p0, v8_1p0, HEAD
readline 8.1

    1: This is rluserman.info, produced by makeinfo version 6.7 from
    2: rluserman.texi.
    3: 
    4: This manual describes the end user interface of the GNU Readline Library
    5: (version 8.1, 29 October 2020), a library which aids in the consistency
    6: of user interface across discrete programs which provide a command line
    7: interface.
    8: 
    9:    Copyright (C) 1988-2020 Free Software Foundation, Inc.
   10: 
   11:      Permission is granted to copy, distribute and/or modify this
   12:      document under the terms of the GNU Free Documentation License,
   13:      Version 1.3 or any later version published by the Free Software
   14:      Foundation; with no Invariant Sections, no Front-Cover Texts, and
   15:      no Back-Cover Texts.  A copy of the license is included in the
   16:      section entitled "GNU Free Documentation License".
   17: 
   18: INFO-DIR-SECTION Libraries
   19: START-INFO-DIR-ENTRY
   20: * RLuserman: (rluserman).       The GNU readline library User's Manual.
   21: END-INFO-DIR-ENTRY
   22: 
   23: 
   24: File: rluserman.info,  Node: Top,  Next: Command Line Editing,  Up: (dir)
   25: 
   26: GNU Readline Library
   27: ********************
   28: 
   29: This document describes the end user interface of the GNU Readline
   30: Library, a utility which aids in the consistency of user interface
   31: across discrete programs which provide a command line interface.  The
   32: Readline home page is <http://www.gnu.org/software/readline/>.
   33: 
   34: * Menu:
   35: 
   36: * Command Line Editing::	   GNU Readline User's Manual.
   37: * GNU Free Documentation License::	License for copying this manual.
   38: 
   39: 
   40: File: rluserman.info,  Node: Command Line Editing,  Next: GNU Free Documentation License,  Prev: Top,  Up: Top
   41: 
   42: 1 Command Line Editing
   43: **********************
   44: 
   45: This chapter describes the basic features of the GNU command line
   46: editing interface.
   47: 
   48: * Menu:
   49: 
   50: * Introduction and Notation::	Notation used in this text.
   51: * Readline Interaction::	The minimum set of commands for editing a line.
   52: * Readline Init File::		Customizing Readline from a user's view.
   53: * Bindable Readline Commands::	A description of most of the Readline commands
   54: 				available for binding
   55: * Readline vi Mode::		A short description of how to make Readline
   56: 				behave like the vi editor.
   57: 
   58: 
   59: File: rluserman.info,  Node: Introduction and Notation,  Next: Readline Interaction,  Up: Command Line Editing
   60: 
   61: 1.1 Introduction to Line Editing
   62: ================================
   63: 
   64: The following paragraphs describe the notation used to represent
   65: keystrokes.
   66: 
   67:    The text 'C-k' is read as 'Control-K' and describes the character
   68: produced when the <k> key is pressed while the Control key is depressed.
   69: 
   70:    The text 'M-k' is read as 'Meta-K' and describes the character
   71: produced when the Meta key (if you have one) is depressed, and the <k>
   72: key is pressed.  The Meta key is labeled <ALT> on many keyboards.  On
   73: keyboards with two keys labeled <ALT> (usually to either side of the
   74: space bar), the <ALT> on the left side is generally set to work as a
   75: Meta key.  The <ALT> key on the right may also be configured to work as
   76: a Meta key or may be configured as some other modifier, such as a
   77: Compose key for typing accented characters.
   78: 
   79:    If you do not have a Meta or <ALT> key, or another key working as a
   80: Meta key, the identical keystroke can be generated by typing <ESC>
   81: _first_, and then typing <k>.  Either process is known as "metafying"
   82: the <k> key.
   83: 
   84:    The text 'M-C-k' is read as 'Meta-Control-k' and describes the
   85: character produced by "metafying" 'C-k'.
   86: 
   87:    In addition, several keys have their own names.  Specifically, <DEL>,
   88: <ESC>, <LFD>, <SPC>, <RET>, and <TAB> all stand for themselves when seen
   89: in this text, or in an init file (*note Readline Init File::).  If your
   90: keyboard lacks a <LFD> key, typing <C-j> will produce the desired
   91: character.  The <RET> key may be labeled <Return> or <Enter> on some
   92: keyboards.
   93: 
   94: 
   95: File: rluserman.info,  Node: Readline Interaction,  Next: Readline Init File,  Prev: Introduction and Notation,  Up: Command Line Editing
   96: 
   97: 1.2 Readline Interaction
   98: ========================
   99: 
  100: Often during an interactive session you type in a long line of text,
  101: only to notice that the first word on the line is misspelled.  The
  102: Readline library gives you a set of commands for manipulating the text
  103: as you type it in, allowing you to just fix your typo, and not forcing
  104: you to retype the majority of the line.  Using these editing commands,
  105: you move the cursor to the place that needs correction, and delete or
  106: insert the text of the corrections.  Then, when you are satisfied with
  107: the line, you simply press <RET>.  You do not have to be at the end of
  108: the line to press <RET>; the entire line is accepted regardless of the
  109: location of the cursor within the line.
  110: 
  111: * Menu:
  112: 
  113: * Readline Bare Essentials::	The least you need to know about Readline.
  114: * Readline Movement Commands::	Moving about the input line.
  115: * Readline Killing Commands::	How to delete text, and how to get it back!
  116: * Readline Arguments::		Giving numeric arguments to commands.
  117: * Searching::			Searching through previous lines.
  118: 
  119: 
  120: File: rluserman.info,  Node: Readline Bare Essentials,  Next: Readline Movement Commands,  Up: Readline Interaction
  121: 
  122: 1.2.1 Readline Bare Essentials
  123: ------------------------------
  124: 
  125: In order to enter characters into the line, simply type them.  The typed
  126: character appears where the cursor was, and then the cursor moves one
  127: space to the right.  If you mistype a character, you can use your erase
  128: character to back up and delete the mistyped character.
  129: 
  130:    Sometimes you may mistype a character, and not notice the error until
  131: you have typed several other characters.  In that case, you can type
  132: 'C-b' to move the cursor to the left, and then correct your mistake.
  133: Afterwards, you can move the cursor to the right with 'C-f'.
  134: 
  135:    When you add text in the middle of a line, you will notice that
  136: characters to the right of the cursor are 'pushed over' to make room for
  137: the text that you have inserted.  Likewise, when you delete text behind
  138: the cursor, characters to the right of the cursor are 'pulled back' to
  139: fill in the blank space created by the removal of the text.  A list of
  140: the bare essentials for editing the text of an input line follows.
  141: 
  142: 'C-b'
  143:      Move back one character.
  144: 'C-f'
  145:      Move forward one character.
  146: <DEL> or <Backspace>
  147:      Delete the character to the left of the cursor.
  148: 'C-d'
  149:      Delete the character underneath the cursor.
  150: Printing characters
  151:      Insert the character into the line at the cursor.
  152: 'C-_' or 'C-x C-u'
  153:      Undo the last editing command.  You can undo all the way back to an
  154:      empty line.
  155: 
  156: (Depending on your configuration, the <Backspace> key be set to delete
  157: the character to the left of the cursor and the <DEL> key set to delete
  158: the character underneath the cursor, like 'C-d', rather than the
  159: character to the left of the cursor.)
  160: 
  161: 
  162: File: rluserman.info,  Node: Readline Movement Commands,  Next: Readline Killing Commands,  Prev: Readline Bare Essentials,  Up: Readline Interaction
  163: 
  164: 1.2.2 Readline Movement Commands
  165: --------------------------------
  166: 
  167: The above table describes the most basic keystrokes that you need in
  168: order to do editing of the input line.  For your convenience, many other
  169: commands have been added in addition to 'C-b', 'C-f', 'C-d', and <DEL>.
  170: Here are some commands for moving more rapidly about the line.
  171: 
  172: 'C-a'
  173:      Move to the start of the line.
  174: 'C-e'
  175:      Move to the end of the line.
  176: 'M-f'
  177:      Move forward a word, where a word is composed of letters and
  178:      digits.
  179: 'M-b'
  180:      Move backward a word.
  181: 'C-l'
  182:      Clear the screen, reprinting the current line at the top.
  183: 
  184:    Notice how 'C-f' moves forward a character, while 'M-f' moves forward
  185: a word.  It is a loose convention that control keystrokes operate on
  186: characters while meta keystrokes operate on words.
  187: 
  188: 
  189: File: rluserman.info,  Node: Readline Killing Commands,  Next: Readline Arguments,  Prev: Readline Movement Commands,  Up: Readline Interaction
  190: 
  191: 1.2.3 Readline Killing Commands
  192: -------------------------------
  193: 
  194: "Killing" text means to delete the text from the line, but to save it
  195: away for later use, usually by "yanking" (re-inserting) it back into the
  196: line.  ('Cut' and 'paste' are more recent jargon for 'kill' and 'yank'.)
  197: 
  198:    If the description for a command says that it 'kills' text, then you
  199: can be sure that you can get the text back in a different (or the same)
  200: place later.
  201: 
  202:    When you use a kill command, the text is saved in a "kill-ring".  Any
  203: number of consecutive kills save all of the killed text together, so
  204: that when you yank it back, you get it all.  The kill ring is not line
  205: specific; the text that you killed on a previously typed line is
  206: available to be yanked back later, when you are typing another line.
  207: 
  208:    Here is the list of commands for killing text.
  209: 
  210: 'C-k'
  211:      Kill the text from the current cursor position to the end of the
  212:      line.
  213: 
  214: 'M-d'
  215:      Kill from the cursor to the end of the current word, or, if between
  216:      words, to the end of the next word.  Word boundaries are the same
  217:      as those used by 'M-f'.
  218: 
  219: 'M-<DEL>'
  220:      Kill from the cursor the start of the current word, or, if between
  221:      words, to the start of the previous word.  Word boundaries are the
  222:      same as those used by 'M-b'.
  223: 
  224: 'C-w'
  225:      Kill from the cursor to the previous whitespace.  This is different
  226:      than 'M-<DEL>' because the word boundaries differ.
  227: 
  228:    Here is how to "yank" the text back into the line.  Yanking means to
  229: copy the most-recently-killed text from the kill buffer.
  230: 
  231: 'C-y'
  232:      Yank the most recently killed text back into the buffer at the
  233:      cursor.
  234: 
  235: 'M-y'
  236:      Rotate the kill-ring, and yank the new top.  You can only do this
  237:      if the prior command is 'C-y' or 'M-y'.
  238: 
  239: 
  240: File: rluserman.info,  Node: Readline Arguments,  Next: Searching,  Prev: Readline Killing Commands,  Up: Readline Interaction
  241: 
  242: 1.2.4 Readline Arguments
  243: ------------------------
  244: 
  245: You can pass numeric arguments to Readline commands.  Sometimes the
  246: argument acts as a repeat count, other times it is the sign of the
  247: argument that is significant.  If you pass a negative argument to a
  248: command which normally acts in a forward direction, that command will
  249: act in a backward direction.  For example, to kill text back to the
  250: start of the line, you might type 'M-- C-k'.
  251: 
  252:    The general way to pass numeric arguments to a command is to type
  253: meta digits before the command.  If the first 'digit' typed is a minus
  254: sign ('-'), then the sign of the argument will be negative.  Once you
  255: have typed one meta digit to get the argument started, you can type the
  256: remainder of the digits, and then the command.  For example, to give the
  257: 'C-d' command an argument of 10, you could type 'M-1 0 C-d', which will
  258: delete the next ten characters on the input line.
  259: 
  260: 
  261: File: rluserman.info,  Node: Searching,  Prev: Readline Arguments,  Up: Readline Interaction
  262: 
  263: 1.2.5 Searching for Commands in the History
  264: -------------------------------------------
  265: 
  266: Readline provides commands for searching through the command history for
  267: lines containing a specified string.  There are two search modes:
  268: "incremental" and "non-incremental".
  269: 
  270:    Incremental searches begin before the user has finished typing the
  271: search string.  As each character of the search string is typed,
  272: Readline displays the next entry from the history matching the string
  273: typed so far.  An incremental search requires only as many characters as
  274: needed to find the desired history entry.  To search backward in the
  275: history for a particular string, type 'C-r'.  Typing 'C-s' searches
  276: forward through the history.  The characters present in the value of the
  277: 'isearch-terminators' variable are used to terminate an incremental
  278: search.  If that variable has not been assigned a value, the <ESC> and
  279: 'C-J' characters will terminate an incremental search.  'C-g' will abort
  280: an incremental search and restore the original line.  When the search is
  281: terminated, the history entry containing the search string becomes the
  282: current line.
  283: 
  284:    To find other matching entries in the history list, type 'C-r' or
  285: 'C-s' as appropriate.  This will search backward or forward in the
  286: history for the next entry matching the search string typed so far.  Any
  287: other key sequence bound to a Readline command will terminate the search
  288: and execute that command.  For instance, a <RET> will terminate the
  289: search and accept the line, thereby executing the command from the
  290: history list.  A movement command will terminate the search, make the
  291: last line found the current line, and begin editing.
  292: 
  293:    Readline remembers the last incremental search string.  If two 'C-r's
  294: are typed without any intervening characters defining a new search
  295: string, any remembered search string is used.
  296: 
  297:    Non-incremental searches read the entire search string before
  298: starting to search for matching history lines.  The search string may be
  299: typed by the user or be part of the contents of the current line.
  300: 
  301: 
  302: File: rluserman.info,  Node: Readline Init File,  Next: Bindable Readline Commands,  Prev: Readline Interaction,  Up: Command Line Editing
  303: 
  304: 1.3 Readline Init File
  305: ======================
  306: 
  307: Although the Readline library comes with a set of Emacs-like keybindings
  308: installed by default, it is possible to use a different set of
  309: keybindings.  Any user can customize programs that use Readline by
  310: putting commands in an "inputrc" file, conventionally in his home
  311: directory.  The name of this file is taken from the value of the
  312: environment variable 'INPUTRC'.  If that variable is unset, the default
  313: is '~/.inputrc'.  If that file does not exist or cannot be read, the
  314: ultimate default is '/etc/inputrc'.
  315: 
  316:    When a program which uses the Readline library starts up, the init
  317: file is read, and the key bindings are set.
  318: 
  319:    In addition, the 'C-x C-r' command re-reads this init file, thus
  320: incorporating any changes that you might have made to it.
  321: 
  322: * Menu:
  323: 
  324: * Readline Init File Syntax::	Syntax for the commands in the inputrc file.
  325: 
  326: * Conditional Init Constructs::	Conditional key bindings in the inputrc file.
  327: 
  328: * Sample Init File::		An example inputrc file.
  329: 
  330: 
  331: File: rluserman.info,  Node: Readline Init File Syntax,  Next: Conditional Init Constructs,  Up: Readline Init File
  332: 
  333: 1.3.1 Readline Init File Syntax
  334: -------------------------------
  335: 
  336: There are only a few basic constructs allowed in the Readline init file.
  337: Blank lines are ignored.  Lines beginning with a '#' are comments.
  338: Lines beginning with a '$' indicate conditional constructs (*note
  339: Conditional Init Constructs::).  Other lines denote variable settings
  340: and key bindings.
  341: 
  342: Variable Settings
  343:      You can modify the run-time behavior of Readline by altering the
  344:      values of variables in Readline using the 'set' command within the
  345:      init file.  The syntax is simple:
  346: 
  347:           set VARIABLE VALUE
  348: 
  349:      Here, for example, is how to change from the default Emacs-like key
  350:      binding to use 'vi' line editing commands:
  351: 
  352:           set editing-mode vi
  353: 
  354:      Variable names and values, where appropriate, are recognized
  355:      without regard to case.  Unrecognized variable names are ignored.
  356: 
  357:      Boolean variables (those that can be set to on or off) are set to
  358:      on if the value is null or empty, ON (case-insensitive), or 1.  Any
  359:      other value results in the variable being set to off.
  360: 
  361:      A great deal of run-time behavior is changeable with the following
  362:      variables.
  363: 
  364:      'bell-style'
  365:           Controls what happens when Readline wants to ring the terminal
  366:           bell.  If set to 'none', Readline never rings the bell.  If
  367:           set to 'visible', Readline uses a visible bell if one is
  368:           available.  If set to 'audible' (the default), Readline
  369:           attempts to ring the terminal's bell.
  370: 
  371:      'bind-tty-special-chars'
  372:           If set to 'on' (the default), Readline attempts to bind the
  373:           control characters treated specially by the kernel's terminal
  374:           driver to their Readline equivalents.
  375: 
  376:      'blink-matching-paren'
  377:           If set to 'on', Readline attempts to briefly move the cursor
  378:           to an opening parenthesis when a closing parenthesis is
  379:           inserted.  The default is 'off'.
  380: 
  381:      'colored-completion-prefix'
  382:           If set to 'on', when listing completions, Readline displays
  383:           the common prefix of the set of possible completions using a
  384:           different color.  The color definitions are taken from the
  385:           value of the 'LS_COLORS' environment variable.  The default is
  386:           'off'.
  387: 
  388:      'colored-stats'
  389:           If set to 'on', Readline displays possible completions using
  390:           different colors to indicate their file type.  The color
  391:           definitions are taken from the value of the 'LS_COLORS'
  392:           environment variable.  The default is 'off'.
  393: 
  394:      'comment-begin'
  395:           The string to insert at the beginning of the line when the
  396:           'insert-comment' command is executed.  The default value is
  397:           '"#"'.
  398: 
  399:      'completion-display-width'
  400:           The number of screen columns used to display possible matches
  401:           when performing completion.  The value is ignored if it is
  402:           less than 0 or greater than the terminal screen width.  A
  403:           value of 0 will cause matches to be displayed one per line.
  404:           The default value is -1.
  405: 
  406:      'completion-ignore-case'
  407:           If set to 'on', Readline performs filename matching and
  408:           completion in a case-insensitive fashion.  The default value
  409:           is 'off'.
  410: 
  411:      'completion-map-case'
  412:           If set to 'on', and COMPLETION-IGNORE-CASE is enabled,
  413:           Readline treats hyphens ('-') and underscores ('_') as
  414:           equivalent when performing case-insensitive filename matching
  415:           and completion.  The default value is 'off'.
  416: 
  417:      'completion-prefix-display-length'
  418:           The length in characters of the common prefix of a list of
  419:           possible completions that is displayed without modification.
  420:           When set to a value greater than zero, common prefixes longer
  421:           than this value are replaced with an ellipsis when displaying
  422:           possible completions.
  423: 
  424:      'completion-query-items'
  425:           The number of possible completions that determines when the
  426:           user is asked whether the list of possibilities should be
  427:           displayed.  If the number of possible completions is greater
  428:           than or equal to this value, Readline will ask whether or not
  429:           the user wishes to view them; otherwise, they are simply
  430:           listed.  This variable must be set to an integer value greater
  431:           than or equal to 0.  A negative value means Readline should
  432:           never ask.  The default limit is '100'.
  433: 
  434:      'convert-meta'
  435:           If set to 'on', Readline will convert characters with the
  436:           eighth bit set to an ASCII key sequence by stripping the
  437:           eighth bit and prefixing an <ESC> character, converting them
  438:           to a meta-prefixed key sequence.  The default value is 'on',
  439:           but will be set to 'off' if the locale is one that contains
  440:           eight-bit characters.
  441: 
  442:      'disable-completion'
  443:           If set to 'On', Readline will inhibit word completion.
  444:           Completion characters will be inserted into the line as if
  445:           they had been mapped to 'self-insert'.  The default is 'off'.
  446: 
  447:      'echo-control-characters'
  448:           When set to 'on', on operating systems that indicate they
  449:           support it, readline echoes a character corresponding to a
  450:           signal generated from the keyboard.  The default is 'on'.
  451: 
  452:      'editing-mode'
  453:           The 'editing-mode' variable controls which default set of key
  454:           bindings is used.  By default, Readline starts up in Emacs
  455:           editing mode, where the keystrokes are most similar to Emacs.
  456:           This variable can be set to either 'emacs' or 'vi'.
  457: 
  458:      'emacs-mode-string'
  459:           If the SHOW-MODE-IN-PROMPT variable is enabled, this string is
  460:           displayed immediately before the last line of the primary
  461:           prompt when emacs editing mode is active.  The value is
  462:           expanded like a key binding, so the standard set of meta- and
  463:           control prefixes and backslash escape sequences is available.
  464:           Use the '\1' and '\2' escapes to begin and end sequences of
  465:           non-printing characters, which can be used to embed a terminal
  466:           control sequence into the mode string.  The default is '@'.
  467: 
  468:      'enable-bracketed-paste'
  469:           When set to 'On', Readline will configure the terminal in a
  470:           way that will enable it to insert each paste into the editing
  471:           buffer as a single string of characters, instead of treating
  472:           each character as if it had been read from the keyboard.  This
  473:           can prevent pasted characters from being interpreted as
  474:           editing commands.  The default is 'On'.
  475: 
  476:      'enable-keypad'
  477:           When set to 'on', Readline will try to enable the application
  478:           keypad when it is called.  Some systems need this to enable
  479:           the arrow keys.  The default is 'off'.
  480: 
  481:      'enable-meta-key'
  482:           When set to 'on', Readline will try to enable any meta
  483:           modifier key the terminal claims to support when it is called.
  484:           On many terminals, the meta key is used to send eight-bit
  485:           characters.  The default is 'on'.
  486: 
  487:      'expand-tilde'
  488:           If set to 'on', tilde expansion is performed when Readline
  489:           attempts word completion.  The default is 'off'.
  490: 
  491:      'history-preserve-point'
  492:           If set to 'on', the history code attempts to place the point
  493:           (the current cursor position) at the same location on each
  494:           history line retrieved with 'previous-history' or
  495:           'next-history'.  The default is 'off'.
  496: 
  497:      'history-size'
  498:           Set the maximum number of history entries saved in the history
  499:           list.  If set to zero, any existing history entries are
  500:           deleted and no new entries are saved.  If set to a value less
  501:           than zero, the number of history entries is not limited.  By
  502:           default, the number of history entries is not limited.  If an
  503:           attempt is made to set HISTORY-SIZE to a non-numeric value,
  504:           the maximum number of history entries will be set to 500.
  505: 
  506:      'horizontal-scroll-mode'
  507:           This variable can be set to either 'on' or 'off'.  Setting it
  508:           to 'on' means that the text of the lines being edited will
  509:           scroll horizontally on a single screen line when they are
  510:           longer than the width of the screen, instead of wrapping onto
  511:           a new screen line.  This variable is automatically set to 'on'
  512:           for terminals of height 1.  By default, this variable is set
  513:           to 'off'.
  514: 
  515:      'input-meta'
  516:           If set to 'on', Readline will enable eight-bit input (it will
  517:           not clear the eighth bit in the characters it reads),
  518:           regardless of what the terminal claims it can support.  The
  519:           default value is 'off', but Readline will set it to 'on' if
  520:           the locale contains eight-bit characters.  The name
  521:           'meta-flag' is a synonym for this variable.
  522: 
  523:      'isearch-terminators'
  524:           The string of characters that should terminate an incremental
  525:           search without subsequently executing the character as a
  526:           command (*note Searching::).  If this variable has not been
  527:           given a value, the characters <ESC> and 'C-J' will terminate
  528:           an incremental search.
  529: 
  530:      'keymap'
  531:           Sets Readline's idea of the current keymap for key binding
  532:           commands.  Built-in 'keymap' names are 'emacs',
  533:           'emacs-standard', 'emacs-meta', 'emacs-ctlx', 'vi', 'vi-move',
  534:           'vi-command', and 'vi-insert'.  'vi' is equivalent to
  535:           'vi-command' ('vi-move' is also a synonym); 'emacs' is
  536:           equivalent to 'emacs-standard'.  Applications may add
  537:           additional names.  The default value is 'emacs'.  The value of
  538:           the 'editing-mode' variable also affects the default keymap.
  539: 
  540:      'keyseq-timeout'
  541:           Specifies the duration Readline will wait for a character when
  542:           reading an ambiguous key sequence (one that can form a
  543:           complete key sequence using the input read so far, or can take
  544:           additional input to complete a longer key sequence).  If no
  545:           input is received within the timeout, Readline will use the
  546:           shorter but complete key sequence.  Readline uses this value
  547:           to determine whether or not input is available on the current
  548:           input source ('rl_instream' by default).  The value is
  549:           specified in milliseconds, so a value of 1000 means that
  550:           Readline will wait one second for additional input.  If this
  551:           variable is set to a value less than or equal to zero, or to a
  552:           non-numeric value, Readline will wait until another key is
  553:           pressed to decide which key sequence to complete.  The default
  554:           value is '500'.
  555: 
  556:      'mark-directories'
  557:           If set to 'on', completed directory names have a slash
  558:           appended.  The default is 'on'.
  559: 
  560:      'mark-modified-lines'
  561:           This variable, when set to 'on', causes Readline to display an
  562:           asterisk ('*') at the start of history lines which have been
  563:           modified.  This variable is 'off' by default.
  564: 
  565:      'mark-symlinked-directories'
  566:           If set to 'on', completed names which are symbolic links to
  567:           directories have a slash appended (subject to the value of
  568:           'mark-directories').  The default is 'off'.
  569: 
  570:      'match-hidden-files'
  571:           This variable, when set to 'on', causes Readline to match
  572:           files whose names begin with a '.' (hidden files) when
  573:           performing filename completion.  If set to 'off', the leading
  574:           '.' must be supplied by the user in the filename to be
  575:           completed.  This variable is 'on' by default.
  576: 
  577:      'menu-complete-display-prefix'
  578:           If set to 'on', menu completion displays the common prefix of
  579:           the list of possible completions (which may be empty) before
  580:           cycling through the list.  The default is 'off'.
  581: 
  582:      'output-meta'
  583:           If set to 'on', Readline will display characters with the
  584:           eighth bit set directly rather than as a meta-prefixed escape
  585:           sequence.  The default is 'off', but Readline will set it to
  586:           'on' if the locale contains eight-bit characters.
  587: 
  588:      'page-completions'
  589:           If set to 'on', Readline uses an internal 'more'-like pager to
  590:           display a screenful of possible completions at a time.  This
  591:           variable is 'on' by default.
  592: 
  593:      'print-completions-horizontally'
  594:           If set to 'on', Readline will display completions with matches
  595:           sorted horizontally in alphabetical order, rather than down
  596:           the screen.  The default is 'off'.
  597: 
  598:      'revert-all-at-newline'
  599:           If set to 'on', Readline will undo all changes to history
  600:           lines before returning when 'accept-line' is executed.  By
  601:           default, history lines may be modified and retain individual
  602:           undo lists across calls to 'readline'.  The default is 'off'.
  603: 
  604:      'show-all-if-ambiguous'
  605:           This alters the default behavior of the completion functions.
  606:           If set to 'on', words which have more than one possible
  607:           completion cause the matches to be listed immediately instead
  608:           of ringing the bell.  The default value is 'off'.
  609: 
  610:      'show-all-if-unmodified'
  611:           This alters the default behavior of the completion functions
  612:           in a fashion similar to SHOW-ALL-IF-AMBIGUOUS.  If set to
  613:           'on', words which have more than one possible completion
  614:           without any possible partial completion (the possible
  615:           completions don't share a common prefix) cause the matches to
  616:           be listed immediately instead of ringing the bell.  The
  617:           default value is 'off'.
  618: 
  619:      'show-mode-in-prompt'
  620:           If set to 'on', add a string to the beginning of the prompt
  621:           indicating the editing mode: emacs, vi command, or vi
  622:           insertion.  The mode strings are user-settable (e.g.,
  623:           EMACS-MODE-STRING).  The default value is 'off'.
  624: 
  625:      'skip-completed-text'
  626:           If set to 'on', this alters the default completion behavior
  627:           when inserting a single match into the line.  It's only active
  628:           when performing completion in the middle of a word.  If
  629:           enabled, readline does not insert characters from the
  630:           completion that match characters after point in the word being
  631:           completed, so portions of the word following the cursor are
  632:           not duplicated.  For instance, if this is enabled, attempting
  633:           completion when the cursor is after the 'e' in 'Makefile' will
  634:           result in 'Makefile' rather than 'Makefilefile', assuming
  635:           there is a single possible completion.  The default value is
  636:           'off'.
  637: 
  638:      'vi-cmd-mode-string'
  639:           If the SHOW-MODE-IN-PROMPT variable is enabled, this string is
  640:           displayed immediately before the last line of the primary
  641:           prompt when vi editing mode is active and in command mode.
  642:           The value is expanded like a key binding, so the standard set
  643:           of meta- and control prefixes and backslash escape sequences
  644:           is available.  Use the '\1' and '\2' escapes to begin and end
  645:           sequences of non-printing characters, which can be used to
  646:           embed a terminal control sequence into the mode string.  The
  647:           default is '(cmd)'.
  648: 
  649:      'vi-ins-mode-string'
  650:           If the SHOW-MODE-IN-PROMPT variable is enabled, this string is
  651:           displayed immediately before the last line of the primary
  652:           prompt when vi editing mode is active and in insertion mode.
  653:           The value is expanded like a key binding, so the standard set
  654:           of meta- and control prefixes and backslash escape sequences
  655:           is available.  Use the '\1' and '\2' escapes to begin and end
  656:           sequences of non-printing characters, which can be used to
  657:           embed a terminal control sequence into the mode string.  The
  658:           default is '(ins)'.
  659: 
  660:      'visible-stats'
  661:           If set to 'on', a character denoting a file's type is appended
  662:           to the filename when listing possible completions.  The
  663:           default is 'off'.
  664: 
  665: Key Bindings
  666:      The syntax for controlling key bindings in the init file is simple.
  667:      First you need to find the name of the command that you want to
  668:      change.  The following sections contain tables of the command name,
  669:      the default keybinding, if any, and a short description of what the
  670:      command does.
  671: 
  672:      Once you know the name of the command, simply place on a line in
  673:      the init file the name of the key you wish to bind the command to,
  674:      a colon, and then the name of the command.  There can be no space
  675:      between the key name and the colon - that will be interpreted as
  676:      part of the key name.  The name of the key can be expressed in
  677:      different ways, depending on what you find most comfortable.
  678: 
  679:      In addition to command names, readline allows keys to be bound to a
  680:      string that is inserted when the key is pressed (a MACRO).
  681: 
  682:      KEYNAME: FUNCTION-NAME or MACRO
  683:           KEYNAME is the name of a key spelled out in English.  For
  684:           example:
  685:                Control-u: universal-argument
  686:                Meta-Rubout: backward-kill-word
  687:                Control-o: "> output"
  688: 
  689:           In the example above, 'C-u' is bound to the function
  690:           'universal-argument', 'M-DEL' is bound to the function
  691:           'backward-kill-word', and 'C-o' is bound to run the macro
  692:           expressed on the right hand side (that is, to insert the text
  693:           '> output' into the line).
  694: 
  695:           A number of symbolic character names are recognized while
  696:           processing this key binding syntax: DEL, ESC, ESCAPE, LFD,
  697:           NEWLINE, RET, RETURN, RUBOUT, SPACE, SPC, and TAB.
  698: 
  699:      "KEYSEQ": FUNCTION-NAME or MACRO
  700:           KEYSEQ differs from KEYNAME above in that strings denoting an
  701:           entire key sequence can be specified, by placing the key
  702:           sequence in double quotes.  Some GNU Emacs style key escapes
  703:           can be used, as in the following example, but the special
  704:           character names are not recognized.
  705: 
  706:                "\C-u": universal-argument
  707:                "\C-x\C-r": re-read-init-file
  708:                "\e[11~": "Function Key 1"
  709: 
  710:           In the above example, 'C-u' is again bound to the function
  711:           'universal-argument' (just as it was in the first example),
  712:           ''C-x' 'C-r'' is bound to the function 're-read-init-file',
  713:           and '<ESC> <[> <1> <1> <~>' is bound to insert the text
  714:           'Function Key 1'.
  715: 
  716:      The following GNU Emacs style escape sequences are available when
  717:      specifying key sequences:
  718: 
  719:      '\C-'
  720:           control prefix
  721:      '\M-'
  722:           meta prefix
  723:      '\e'
  724:           an escape character
  725:      '\\'
  726:           backslash
  727:      '\"'
  728:           <">, a double quotation mark
  729:      '\''
  730:           <'>, a single quote or apostrophe
  731: 
  732:      In addition to the GNU Emacs style escape sequences, a second set
  733:      of backslash escapes is available:
  734: 
  735:      '\a'
  736:           alert (bell)
  737:      '\b'
  738:           backspace
  739:      '\d'
  740:           delete
  741:      '\f'
  742:           form feed
  743:      '\n'
  744:           newline
  745:      '\r'
  746:           carriage return
  747:      '\t'
  748:           horizontal tab
  749:      '\v'
  750:           vertical tab
  751:      '\NNN'
  752:           the eight-bit character whose value is the octal value NNN
  753:           (one to three digits)
  754:      '\xHH'
  755:           the eight-bit character whose value is the hexadecimal value
  756:           HH (one or two hex digits)
  757: 
  758:      When entering the text of a macro, single or double quotes must be
  759:      used to indicate a macro definition.  Unquoted text is assumed to
  760:      be a function name.  In the macro body, the backslash escapes
  761:      described above are expanded.  Backslash will quote any other
  762:      character in the macro text, including '"' and '''.  For example,
  763:      the following binding will make ''C-x' \' insert a single '\' into
  764:      the line:
  765:           "\C-x\\": "\\"
  766: 
  767: 
  768: File: rluserman.info,  Node: Conditional Init Constructs,  Next: Sample Init File,  Prev: Readline Init File Syntax,  Up: Readline Init File
  769: 
  770: 1.3.2 Conditional Init Constructs
  771: ---------------------------------
  772: 
  773: Readline implements a facility similar in spirit to the conditional
  774: compilation features of the C preprocessor which allows key bindings and
  775: variable settings to be performed as the result of tests.  There are
  776: four parser directives used.
  777: 
  778: '$if'
  779:      The '$if' construct allows bindings to be made based on the editing
  780:      mode, the terminal being used, or the application using Readline.
  781:      The text of the test, after any comparison operator, extends to the
  782:      end of the line; unless otherwise noted, no characters are required
  783:      to isolate it.
  784: 
  785:      'mode'
  786:           The 'mode=' form of the '$if' directive is used to test
  787:           whether Readline is in 'emacs' or 'vi' mode.  This may be used
  788:           in conjunction with the 'set keymap' command, for instance, to
  789:           set bindings in the 'emacs-standard' and 'emacs-ctlx' keymaps
  790:           only if Readline is starting out in 'emacs' mode.
  791: 
  792:      'term'
  793:           The 'term=' form may be used to include terminal-specific key
  794:           bindings, perhaps to bind the key sequences output by the
  795:           terminal's function keys.  The word on the right side of the
  796:           '=' is tested against both the full name of the terminal and
  797:           the portion of the terminal name before the first '-'.  This
  798:           allows 'sun' to match both 'sun' and 'sun-cmd', for instance.
  799: 
  800:      'version'
  801:           The 'version' test may be used to perform comparisons against
  802:           specific Readline versions.  The 'version' expands to the
  803:           current Readline version.  The set of comparison operators
  804:           includes '=' (and '=='), '!=', '<=', '>=', '<', and '>'.  The
  805:           version number supplied on the right side of the operator
  806:           consists of a major version number, an optional decimal point,
  807:           and an optional minor version (e.g., '7.1').  If the minor
  808:           version is omitted, it is assumed to be '0'.  The operator may
  809:           be separated from the string 'version' and from the version
  810:           number argument by whitespace.  The following example sets a
  811:           variable if the Readline version being used is 7.0 or newer:
  812:                $if version >= 7.0
  813:                set show-mode-in-prompt on
  814:                $endif
  815: 
  816:      'application'
  817:           The APPLICATION construct is used to include
  818:           application-specific settings.  Each program using the
  819:           Readline library sets the APPLICATION NAME, and you can test
  820:           for a particular value.  This could be used to bind key
  821:           sequences to functions useful for a specific program.  For
  822:           instance, the following command adds a key sequence that
  823:           quotes the current or previous word in Bash:
  824:                $if Bash
  825:                # Quote the current or previous word
  826:                "\C-xq": "\eb\"\ef\""
  827:                $endif
  828: 
  829:      'variable'
  830:           The VARIABLE construct provides simple equality tests for
  831:           Readline variables and values.  The permitted comparison
  832:           operators are '=', '==', and '!='.  The variable name must be
  833:           separated from the comparison operator by whitespace; the
  834:           operator may be separated from the value on the right hand
  835:           side by whitespace.  Both string and boolean variables may be
  836:           tested.  Boolean variables must be tested against the values
  837:           ON and OFF.  The following example is equivalent to the
  838:           'mode=emacs' test described above:
  839:                $if editing-mode == emacs
  840:                set show-mode-in-prompt on
  841:                $endif
  842: 
  843: '$endif'
  844:      This command, as seen in the previous example, terminates an '$if'
  845:      command.
  846: 
  847: '$else'
  848:      Commands in this branch of the '$if' directive are executed if the
  849:      test fails.
  850: 
  851: '$include'
  852:      This directive takes a single filename as an argument and reads
  853:      commands and bindings from that file.  For example, the following
  854:      directive reads from '/etc/inputrc':
  855:           $include /etc/inputrc
  856: 
  857: 
  858: File: rluserman.info,  Node: Sample Init File,  Prev: Conditional Init Constructs,  Up: Readline Init File
  859: 
  860: 1.3.3 Sample Init File
  861: ----------------------
  862: 
  863: Here is an example of an INPUTRC file.  This illustrates key binding,
  864: variable assignment, and conditional syntax.
  865: 
  866:      # This file controls the behaviour of line input editing for
  867:      # programs that use the GNU Readline library.  Existing
  868:      # programs include FTP, Bash, and GDB.
  869:      #
  870:      # You can re-read the inputrc file with C-x C-r.
  871:      # Lines beginning with '#' are comments.
  872:      #
  873:      # First, include any system-wide bindings and variable
  874:      # assignments from /etc/Inputrc
  875:      $include /etc/Inputrc
  876: 
  877:      #
  878:      # Set various bindings for emacs mode.
  879: 
  880:      set editing-mode emacs
  881: 
  882:      $if mode=emacs
  883: 
  884:      Meta-Control-h:	backward-kill-word	Text after the function name is ignored
  885: 
  886:      #
  887:      # Arrow keys in keypad mode
  888:      #
  889:      #"\M-OD":        backward-char
  890:      #"\M-OC":        forward-char
  891:      #"\M-OA":        previous-history
  892:      #"\M-OB":        next-history
  893:      #
  894:      # Arrow keys in ANSI mode
  895:      #
  896:      "\M-[D":        backward-char
  897:      "\M-[C":        forward-char
  898:      "\M-[A":        previous-history
  899:      "\M-[B":        next-history
  900:      #
  901:      # Arrow keys in 8 bit keypad mode
  902:      #
  903:      #"\M-\C-OD":       backward-char
  904:      #"\M-\C-OC":       forward-char
  905:      #"\M-\C-OA":       previous-history
  906:      #"\M-\C-OB":       next-history
  907:      #
  908:      # Arrow keys in 8 bit ANSI mode
  909:      #
  910:      #"\M-\C-[D":       backward-char
  911:      #"\M-\C-[C":       forward-char
  912:      #"\M-\C-[A":       previous-history
  913:      #"\M-\C-[B":       next-history
  914: 
  915:      C-q: quoted-insert
  916: 
  917:      $endif
  918: 
  919:      # An old-style binding.  This happens to be the default.
  920:      TAB: complete
  921: 
  922:      # Macros that are convenient for shell interaction
  923:      $if Bash
  924:      # edit the path
  925:      "\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
  926:      # prepare to type a quoted word --
  927:      # insert open and close double quotes
  928:      # and move to just after the open quote
  929:      "\C-x\"": "\"\"\C-b"
  930:      # insert a backslash (testing backslash escapes
  931:      # in sequences and macros)
  932:      "\C-x\\": "\\"
  933:      # Quote the current or previous word
  934:      "\C-xq": "\eb\"\ef\""
  935:      # Add a binding to refresh the line, which is unbound
  936:      "\C-xr": redraw-current-line
  937:      # Edit variable on current line.
  938:      "\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
  939:      $endif
  940: 
  941:      # use a visible bell if one is available
  942:      set bell-style visible
  943: 
  944:      # don't strip characters to 7 bits when reading
  945:      set input-meta on
  946: 
  947:      # allow iso-latin1 characters to be inserted rather
  948:      # than converted to prefix-meta sequences
  949:      set convert-meta off
  950: 
  951:      # display characters with the eighth bit set directly
  952:      # rather than as meta-prefixed characters
  953:      set output-meta on
  954: 
  955:      # if there are 150 or more possible completions for a word,
  956:      # ask whether or not the user wants to see all of them
  957:      set completion-query-items 150
  958: 
  959:      # For FTP
  960:      $if Ftp
  961:      "\C-xg": "get \M-?"
  962:      "\C-xt": "put \M-?"
  963:      "\M-.": yank-last-arg
  964:      $endif
  965: 
  966: 
  967: File: rluserman.info,  Node: Bindable Readline Commands,  Next: Readline vi Mode,  Prev: Readline Init File,  Up: Command Line Editing
  968: 
  969: 1.4 Bindable Readline Commands
  970: ==============================
  971: 
  972: * Menu:
  973: 
  974: * Commands For Moving::		Moving about the line.
  975: * Commands For History::	Getting at previous lines.
  976: * Commands For Text::		Commands for changing text.
  977: * Commands For Killing::	Commands for killing and yanking.
  978: * Numeric Arguments::		Specifying numeric arguments, repeat counts.
  979: * Commands For Completion::	Getting Readline to do the typing for you.
  980: * Keyboard Macros::		Saving and re-executing typed characters
  981: * Miscellaneous Commands::	Other miscellaneous commands.
  982: 
  983: This section describes Readline commands that may be bound to key
  984: sequences.  Command names without an accompanying key sequence are
  985: unbound by default.
  986: 
  987:    In the following descriptions, "point" refers to the current cursor
  988: position, and "mark" refers to a cursor position saved by the 'set-mark'
  989: command.  The text between the point and mark is referred to as the
  990: "region".
  991: 
  992: 
  993: File: rluserman.info,  Node: Commands For Moving,  Next: Commands For History,  Up: Bindable Readline Commands
  994: 
  995: 1.4.1 Commands For Moving
  996: -------------------------
  997: 
  998: 'beginning-of-line (C-a)'
  999:      Move to the start of the current line.
 1000: 
 1001: 'end-of-line (C-e)'
 1002:      Move to the end of the line.
 1003: 
 1004: 'forward-char (C-f)'
 1005:      Move forward a character.
 1006: 
 1007: 'backward-char (C-b)'
 1008:      Move back a character.
 1009: 
 1010: 'forward-word (M-f)'
 1011:      Move forward to the end of the next word.  Words are composed of
 1012:      letters and digits.
 1013: 
 1014: 'backward-word (M-b)'
 1015:      Move back to the start of the current or previous word.  Words are
 1016:      composed of letters and digits.
 1017: 
 1018: 'previous-screen-line ()'
 1019:      Attempt to move point to the same physical screen column on the
 1020:      previous physical screen line.  This will not have the desired
 1021:      effect if the current Readline line does not take up more than one
 1022:      physical line or if point is not greater than the length of the
 1023:      prompt plus the screen width.
 1024: 
 1025: 'next-screen-line ()'
 1026:      Attempt to move point to the same physical screen column on the
 1027:      next physical screen line.  This will not have the desired effect
 1028:      if the current Readline line does not take up more than one
 1029:      physical line or if the length of the current Readline line is not
 1030:      greater than the length of the prompt plus the screen width.
 1031: 
 1032: 'clear-display (M-C-l)'
 1033:      Clear the screen and, if possible, the terminal's scrollback
 1034:      buffer, then redraw the current line, leaving the current line at
 1035:      the top of the screen.
 1036: 
 1037: 'clear-screen (C-l)'
 1038:      Clear the screen, then redraw the current line, leaving the current
 1039:      line at the top of the screen.
 1040: 
 1041: 'redraw-current-line ()'
 1042:      Refresh the current line.  By default, this is unbound.
 1043: 
 1044: 
 1045: File: rluserman.info,  Node: Commands For History,  Next: Commands For Text,  Prev: Commands For Moving,  Up: Bindable Readline Commands
 1046: 
 1047: 1.4.2 Commands For Manipulating The History
 1048: -------------------------------------------
 1049: 
 1050: 'accept-line (Newline or Return)'
 1051:      Accept the line regardless of where the cursor is.  If this line is
 1052:      non-empty, it may be added to the history list for future recall
 1053:      with 'add_history()'.  If this line is a modified history line, the
 1054:      history line is restored to its original state.
 1055: 
 1056: 'previous-history (C-p)'
 1057:      Move 'back' through the history list, fetching the previous
 1058:      command.
 1059: 
 1060: 'next-history (C-n)'
 1061:      Move 'forward' through the history list, fetching the next command.
 1062: 
 1063: 'beginning-of-history (M-<)'
 1064:      Move to the first line in the history.
 1065: 
 1066: 'end-of-history (M->)'
 1067:      Move to the end of the input history, i.e., the line currently
 1068:      being entered.
 1069: 
 1070: 'reverse-search-history (C-r)'
 1071:      Search backward starting at the current line and moving 'up'
 1072:      through the history as necessary.  This is an incremental search.
 1073:      This command sets the region to the matched text and activates the
 1074:      mark.
 1075: 
 1076: 'forward-search-history (C-s)'
 1077:      Search forward starting at the current line and moving 'down'
 1078:      through the history as necessary.  This is an incremental search.
 1079:      This command sets the region to the matched text and activates the
 1080:      mark.
 1081: 
 1082: 'non-incremental-reverse-search-history (M-p)'
 1083:      Search backward starting at the current line and moving 'up'
 1084:      through the history as necessary using a non-incremental search for
 1085:      a string supplied by the user.  The search string may match
 1086:      anywhere in a history line.
 1087: 
 1088: 'non-incremental-forward-search-history (M-n)'
 1089:      Search forward starting at the current line and moving 'down'
 1090:      through the history as necessary using a non-incremental search for
 1091:      a string supplied by the user.  The search string may match
 1092:      anywhere in a history line.
 1093: 
 1094: 'history-search-forward ()'
 1095:      Search forward through the history for the string of characters
 1096:      between the start of the current line and the point.  The search
 1097:      string must match at the beginning of a history line.  This is a
 1098:      non-incremental search.  By default, this command is unbound.
 1099: 
 1100: 'history-search-backward ()'
 1101:      Search backward through the history for the string of characters
 1102:      between the start of the current line and the point.  The search
 1103:      string must match at the beginning of a history line.  This is a
 1104:      non-incremental search.  By default, this command is unbound.
 1105: 
 1106: 'history-substring-search-forward ()'
 1107:      Search forward through the history for the string of characters
 1108:      between the start of the current line and the point.  The search
 1109:      string may match anywhere in a history line.  This is a
 1110:      non-incremental search.  By default, this command is unbound.
 1111: 
 1112: 'history-substring-search-backward ()'
 1113:      Search backward through the history for the string of characters
 1114:      between the start of the current line and the point.  The search
 1115:      string may match anywhere in a history line.  This is a
 1116:      non-incremental search.  By default, this command is unbound.
 1117: 
 1118: 'yank-nth-arg (M-C-y)'
 1119:      Insert the first argument to the previous command (usually the
 1120:      second word on the previous line) at point.  With an argument N,
 1121:      insert the Nth word from the previous command (the words in the
 1122:      previous command begin with word 0).  A negative argument inserts
 1123:      the Nth word from the end of the previous command.  Once the
 1124:      argument N is computed, the argument is extracted as if the '!N'
 1125:      history expansion had been specified.
 1126: 
 1127: 'yank-last-arg (M-. or M-_)'
 1128:      Insert last argument to the previous command (the last word of the
 1129:      previous history entry).  With a numeric argument, behave exactly
 1130:      like 'yank-nth-arg'.  Successive calls to 'yank-last-arg' move back
 1131:      through the history list, inserting the last word (or the word
 1132:      specified by the argument to the first call) of each line in turn.
 1133:      Any numeric argument supplied to these successive calls determines
 1134:      the direction to move through the history.  A negative argument
 1135:      switches the direction through the history (back or forward).  The
 1136:      history expansion facilities are used to extract the last argument,
 1137:      as if the '!$' history expansion had been specified.
 1138: 
 1139: 'operate-and-get-next (C-o)'
 1140:      Accept the current line for return to the calling application as if
 1141:      a newline had been entered, and fetch the next line relative to the
 1142:      current line from the history for editing.  A numeric argument, if
 1143:      supplied, specifies the history entry to use instead of the current
 1144:      line.
 1145: 
 1146: 
 1147: File: rluserman.info,  Node: Commands For Text,  Next: Commands For Killing,  Prev: Commands For History,  Up: Bindable Readline Commands
 1148: 
 1149: 1.4.3 Commands For Changing Text
 1150: --------------------------------
 1151: 
 1152: 'end-of-file (usually C-d)'
 1153:      The character indicating end-of-file as set, for example, by
 1154:      'stty'.  If this character is read when there are no characters on
 1155:      the line, and point is at the beginning of the line, Readline
 1156:      interprets it as the end of input and returns EOF.
 1157: 
 1158: 'delete-char (C-d)'
 1159:      Delete the character at point.  If this function is bound to the
 1160:      same character as the tty EOF character, as 'C-d' commonly is, see
 1161:      above for the effects.
 1162: 
 1163: 'backward-delete-char (Rubout)'
 1164:      Delete the character behind the cursor.  A numeric argument means
 1165:      to kill the characters instead of deleting them.
 1166: 
 1167: 'forward-backward-delete-char ()'
 1168:      Delete the character under the cursor, unless the cursor is at the
 1169:      end of the line, in which case the character behind the cursor is
 1170:      deleted.  By default, this is not bound to a key.
 1171: 
 1172: 'quoted-insert (C-q or C-v)'
 1173:      Add the next character typed to the line verbatim.  This is how to
 1174:      insert key sequences like 'C-q', for example.
 1175: 
 1176: 'tab-insert (M-<TAB>)'
 1177:      Insert a tab character.
 1178: 
 1179: 'self-insert (a, b, A, 1, !, ...)'
 1180:      Insert yourself.
 1181: 
 1182: 'bracketed-paste-begin ()'
 1183:      This function is intended to be bound to the "bracketed paste"
 1184:      escape sequence sent by some terminals, and such a binding is
 1185:      assigned by default.  It allows Readline to insert the pasted text
 1186:      as a single unit without treating each character as if it had been
 1187:      read from the keyboard.  The characters are inserted as if each one
 1188:      was bound to 'self-insert' instead of executing any editing
 1189:      commands.
 1190: 
 1191:      Bracketed paste sets the region (the characters between point and
 1192:      the mark) to the inserted text.  It uses the concept of an _active
 1193:      mark_: when the mark is active, Readline redisplay uses the
 1194:      terminal's standout mode to denote the region.
 1195: 
 1196: 'transpose-chars (C-t)'
 1197:      Drag the character before the cursor forward over the character at
 1198:      the cursor, moving the cursor forward as well.  If the insertion
 1199:      point is at the end of the line, then this transposes the last two
 1200:      characters of the line.  Negative arguments have no effect.
 1201: 
 1202: 'transpose-words (M-t)'
 1203:      Drag the word before point past the word after point, moving point
 1204:      past that word as well.  If the insertion point is at the end of
 1205:      the line, this transposes the last two words on the line.
 1206: 
 1207: 'upcase-word (M-u)'
 1208:      Uppercase the current (or following) word.  With a negative
 1209:      argument, uppercase the previous word, but do not move the cursor.
 1210: 
 1211: 'downcase-word (M-l)'
 1212:      Lowercase the current (or following) word.  With a negative
 1213:      argument, lowercase the previous word, but do not move the cursor.
 1214: 
 1215: 'capitalize-word (M-c)'
 1216:      Capitalize the current (or following) word.  With a negative
 1217:      argument, capitalize the previous word, but do not move the cursor.
 1218: 
 1219: 'overwrite-mode ()'
 1220:      Toggle overwrite mode.  With an explicit positive numeric argument,
 1221:      switches to overwrite mode.  With an explicit non-positive numeric
 1222:      argument, switches to insert mode.  This command affects only
 1223:      'emacs' mode; 'vi' mode does overwrite differently.  Each call to
 1224:      'readline()' starts in insert mode.
 1225: 
 1226:      In overwrite mode, characters bound to 'self-insert' replace the
 1227:      text at point rather than pushing the text to the right.
 1228:      Characters bound to 'backward-delete-char' replace the character
 1229:      before point with a space.
 1230: 
 1231:      By default, this command is unbound.
 1232: 
 1233: 
 1234: File: rluserman.info,  Node: Commands For Killing,  Next: Numeric Arguments,  Prev: Commands For Text,  Up: Bindable Readline Commands
 1235: 
 1236: 1.4.4 Killing And Yanking
 1237: -------------------------
 1238: 
 1239: 'kill-line (C-k)'
 1240:      Kill the text from point to the end of the line.  With a negative
 1241:      numeric argument, kill backward from the cursor to the beginning of
 1242:      the current line.
 1243: 
 1244: 'backward-kill-line (C-x Rubout)'
 1245:      Kill backward from the cursor to the beginning of the current line.
 1246:      With a negative numeric argument, kill forward from the cursor to
 1247:      the end of the current line.
 1248: 
 1249: 'unix-line-discard (C-u)'
 1250:      Kill backward from the cursor to the beginning of the current line.
 1251: 
 1252: 'kill-whole-line ()'
 1253:      Kill all characters on the current line, no matter where point is.
 1254:      By default, this is unbound.
 1255: 
 1256: 'kill-word (M-d)'
 1257:      Kill from point to the end of the current word, or if between
 1258:      words, to the end of the next word.  Word boundaries are the same
 1259:      as 'forward-word'.
 1260: 
 1261: 'backward-kill-word (M-<DEL>)'
 1262:      Kill the word behind point.  Word boundaries are the same as
 1263:      'backward-word'.
 1264: 
 1265: 'shell-transpose-words (M-C-t)'
 1266:      Drag the word before point past the word after point, moving point
 1267:      past that word as well.  If the insertion point is at the end of
 1268:      the line, this transposes the last two words on the line.  Word
 1269:      boundaries are the same as 'shell-forward-word' and
 1270:      'shell-backward-word'.
 1271: 
 1272: 'unix-word-rubout (C-w)'
 1273:      Kill the word behind point, using white space as a word boundary.
 1274:      The killed text is saved on the kill-ring.
 1275: 
 1276: 'unix-filename-rubout ()'
 1277:      Kill the word behind point, using white space and the slash
 1278:      character as the word boundaries.  The killed text is saved on the
 1279:      kill-ring.
 1280: 
 1281: 'delete-horizontal-space ()'
 1282:      Delete all spaces and tabs around point.  By default, this is
 1283:      unbound.
 1284: 
 1285: 'kill-region ()'
 1286:      Kill the text in the current region.  By default, this command is
 1287:      unbound.
 1288: 
 1289: 'copy-region-as-kill ()'
 1290:      Copy the text in the region to the kill buffer, so it can be yanked
 1291:      right away.  By default, this command is unbound.
 1292: 
 1293: 'copy-backward-word ()'
 1294:      Copy the word before point to the kill buffer.  The word boundaries
 1295:      are the same as 'backward-word'.  By default, this command is
 1296:      unbound.
 1297: 
 1298: 'copy-forward-word ()'
 1299:      Copy the word following point to the kill buffer.  The word
 1300:      boundaries are the same as 'forward-word'.  By default, this
 1301:      command is unbound.
 1302: 
 1303: 'yank (C-y)'
 1304:      Yank the top of the kill ring into the buffer at point.
 1305: 
 1306: 'yank-pop (M-y)'
 1307:      Rotate the kill-ring, and yank the new top.  You can only do this
 1308:      if the prior command is 'yank' or 'yank-pop'.
 1309: 
 1310: 
 1311: File: rluserman.info,  Node: Numeric Arguments,  Next: Commands For Completion,  Prev: Commands For Killing,  Up: Bindable Readline Commands
 1312: 
 1313: 1.4.5 Specifying Numeric Arguments
 1314: ----------------------------------
 1315: 
 1316: 'digit-argument (M-0, M-1, ... M--)'
 1317:      Add this digit to the argument already accumulating, or start a new
 1318:      argument.  'M--' starts a negative argument.
 1319: 
 1320: 'universal-argument ()'
 1321:      This is another way to specify an argument.  If this command is
 1322:      followed by one or more digits, optionally with a leading minus
 1323:      sign, those digits define the argument.  If the command is followed
 1324:      by digits, executing 'universal-argument' again ends the numeric
 1325:      argument, but is otherwise ignored.  As a special case, if this
 1326:      command is immediately followed by a character that is neither a
 1327:      digit nor minus sign, the argument count for the next command is
 1328:      multiplied by four.  The argument count is initially one, so
 1329:      executing this function the first time makes the argument count
 1330:      four, a second time makes the argument count sixteen, and so on.
 1331:      By default, this is not bound to a key.
 1332: 
 1333: 
 1334: File: rluserman.info,  Node: Commands For Completion,  Next: Keyboard Macros,  Prev: Numeric Arguments,  Up: Bindable Readline Commands
 1335: 
 1336: 1.4.6 Letting Readline Type For You
 1337: -----------------------------------
 1338: 
 1339: 'complete (<TAB>)'
 1340:      Attempt to perform completion on the text before point.  The actual
 1341:      completion performed is application-specific.  The default is
 1342:      filename completion.
 1343: 
 1344: 'possible-completions (M-?)'
 1345:      List the possible completions of the text before point.  When
 1346:      displaying completions, Readline sets the number of columns used
 1347:      for display to the value of 'completion-display-width', the value
 1348:      of the environment variable 'COLUMNS', or the screen width, in that
 1349:      order.
 1350: 
 1351: 'insert-completions (M-*)'
 1352:      Insert all completions of the text before point that would have
 1353:      been generated by 'possible-completions'.
 1354: 
 1355: 'menu-complete ()'
 1356:      Similar to 'complete', but replaces the word to be completed with a
 1357:      single match from the list of possible completions.  Repeated
 1358:      execution of 'menu-complete' steps through the list of possible
 1359:      completions, inserting each match in turn.  At the end of the list
 1360:      of completions, the bell is rung (subject to the setting of
 1361:      'bell-style') and the original text is restored.  An argument of N
 1362:      moves N positions forward in the list of matches; a negative
 1363:      argument may be used to move backward through the list.  This
 1364:      command is intended to be bound to <TAB>, but is unbound by
 1365:      default.
 1366: 
 1367: 'menu-complete-backward ()'
 1368:      Identical to 'menu-complete', but moves backward through the list
 1369:      of possible completions, as if 'menu-complete' had been given a
 1370:      negative argument.
 1371: 
 1372: 'delete-char-or-list ()'
 1373:      Deletes the character under the cursor if not at the beginning or
 1374:      end of the line (like 'delete-char').  If at the end of the line,
 1375:      behaves identically to 'possible-completions'.  This command is
 1376:      unbound by default.
 1377: 
 1378: 
 1379: File: rluserman.info,  Node: Keyboard Macros,  Next: Miscellaneous Commands,  Prev: Commands For Completion,  Up: Bindable Readline Commands
 1380: 
 1381: 1.4.7 Keyboard Macros
 1382: ---------------------
 1383: 
 1384: 'start-kbd-macro (C-x ()'
 1385:      Begin saving the characters typed into the current keyboard macro.
 1386: 
 1387: 'end-kbd-macro (C-x ))'
 1388:      Stop saving the characters typed into the current keyboard macro
 1389:      and save the definition.
 1390: 
 1391: 'call-last-kbd-macro (C-x e)'
 1392:      Re-execute the last keyboard macro defined, by making the
 1393:      characters in the macro appear as if typed at the keyboard.
 1394: 
 1395: 'print-last-kbd-macro ()'
 1396:      Print the last keboard macro defined in a format suitable for the
 1397:      INPUTRC file.
 1398: 
 1399: 
 1400: File: rluserman.info,  Node: Miscellaneous Commands,  Prev: Keyboard Macros,  Up: Bindable Readline Commands
 1401: 
 1402: 1.4.8 Some Miscellaneous Commands
 1403: ---------------------------------
 1404: 
 1405: 're-read-init-file (C-x C-r)'
 1406:      Read in the contents of the INPUTRC file, and incorporate any
 1407:      bindings or variable assignments found there.
 1408: 
 1409: 'abort (C-g)'
 1410:      Abort the current editing command and ring the terminal's bell
 1411:      (subject to the setting of 'bell-style').
 1412: 
 1413: 'do-lowercase-version (M-A, M-B, M-X, ...)'
 1414:      If the metafied character X is upper case, run the command that is
 1415:      bound to the corresponding metafied lower case character.  The
 1416:      behavior is undefined if X is already lower case.
 1417: 
 1418: 'prefix-meta (<ESC>)'
 1419:      Metafy the next character typed.  This is for keyboards without a
 1420:      meta key.  Typing '<ESC> f' is equivalent to typing 'M-f'.
 1421: 
 1422: 'undo (C-_ or C-x C-u)'
 1423:      Incremental undo, separately remembered for each line.
 1424: 
 1425: 'revert-line (M-r)'
 1426:      Undo all changes made to this line.  This is like executing the
 1427:      'undo' command enough times to get back to the beginning.
 1428: 
 1429: 'tilde-expand (M-~)'
 1430:      Perform tilde expansion on the current word.
 1431: 
 1432: 'set-mark (C-@)'
 1433:      Set the mark to the point.  If a numeric argument is supplied, the
 1434:      mark is set to that position.
 1435: 
 1436: 'exchange-point-and-mark (C-x C-x)'
 1437:      Swap the point with the mark.  The current cursor position is set
 1438:      to the saved position, and the old cursor position is saved as the
 1439:      mark.
 1440: 
 1441: 'character-search (C-])'
 1442:      A character is read and point is moved to the next occurrence of
 1443:      that character.  A negative count searches for previous
 1444:      occurrences.
 1445: 
 1446: 'character-search-backward (M-C-])'
 1447:      A character is read and point is moved to the previous occurrence
 1448:      of that character.  A negative count searches for subsequent
 1449:      occurrences.
 1450: 
 1451: 'skip-csi-sequence ()'
 1452:      Read enough characters to consume a multi-key sequence such as
 1453:      those defined for keys like Home and End.  Such sequences begin
 1454:      with a Control Sequence Indicator (CSI), usually ESC-[.  If this
 1455:      sequence is bound to "\e[", keys producing such sequences will have
 1456:      no effect unless explicitly bound to a readline command, instead of
 1457:      inserting stray characters into the editing buffer.  This is
 1458:      unbound by default, but usually bound to ESC-[.
 1459: 
 1460: 'insert-comment (M-#)'
 1461:      Without a numeric argument, the value of the 'comment-begin'
 1462:      variable is inserted at the beginning of the current line.  If a
 1463:      numeric argument is supplied, this command acts as a toggle: if the
 1464:      characters at the beginning of the line do not match the value of
 1465:      'comment-begin', the value is inserted, otherwise the characters in
 1466:      'comment-begin' are deleted from the beginning of the line.  In
 1467:      either case, the line is accepted as if a newline had been typed.
 1468: 
 1469: 'dump-functions ()'
 1470:      Print all of the functions and their key bindings to the Readline
 1471:      output stream.  If a numeric argument is supplied, the output is
 1472:      formatted in such a way that it can be made part of an INPUTRC
 1473:      file.  This command is unbound by default.
 1474: 
 1475: 'dump-variables ()'
 1476:      Print all of the settable variables and their values to the
 1477:      Readline output stream.  If a numeric argument is supplied, the
 1478:      output is formatted in such a way that it can be made part of an
 1479:      INPUTRC file.  This command is unbound by default.
 1480: 
 1481: 'dump-macros ()'
 1482:      Print all of the Readline key sequences bound to macros and the
 1483:      strings they output.  If a numeric argument is supplied, the output
 1484:      is formatted in such a way that it can be made part of an INPUTRC
 1485:      file.  This command is unbound by default.
 1486: 
 1487: 'emacs-editing-mode (C-e)'
 1488:      When in 'vi' command mode, this causes a switch to 'emacs' editing
 1489:      mode.
 1490: 
 1491: 'vi-editing-mode (M-C-j)'
 1492:      When in 'emacs' editing mode, this causes a switch to 'vi' editing
 1493:      mode.
 1494: 
 1495: 
 1496: File: rluserman.info,  Node: Readline vi Mode,  Prev: Bindable Readline Commands,  Up: Command Line Editing
 1497: 
 1498: 1.5 Readline vi Mode
 1499: ====================
 1500: 
 1501: While the Readline library does not have a full set of 'vi' editing
 1502: functions, it does contain enough to allow simple editing of the line.
 1503: The Readline 'vi' mode behaves as specified in the POSIX standard.
 1504: 
 1505:    In order to switch interactively between 'emacs' and 'vi' editing
 1506: modes, use the command 'M-C-j' (bound to emacs-editing-mode when in 'vi'
 1507: mode and to vi-editing-mode in 'emacs' mode).  The Readline default is
 1508: 'emacs' mode.
 1509: 
 1510:    When you enter a line in 'vi' mode, you are already placed in
 1511: 'insertion' mode, as if you had typed an 'i'.  Pressing <ESC> switches
 1512: you into 'command' mode, where you can edit the text of the line with
 1513: the standard 'vi' movement keys, move to previous history lines with 'k'
 1514: and subsequent lines with 'j', and so forth.
 1515: 
 1516: 
 1517: File: rluserman.info,  Node: GNU Free Documentation License,  Prev: Command Line Editing,  Up: Top
 1518: 
 1519: Appendix A GNU Free Documentation License
 1520: *****************************************
 1521: 
 1522:                      Version 1.3, 3 November 2008
 1523: 
 1524:      Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
 1525:      <http://fsf.org/>
 1526: 
 1527:      Everyone is permitted to copy and distribute verbatim copies
 1528:      of this license document, but changing it is not allowed.
 1529: 
 1530:   0. PREAMBLE
 1531: 
 1532:      The purpose of this License is to make a manual, textbook, or other
 1533:      functional and useful document "free" in the sense of freedom: to
 1534:      assure everyone the effective freedom to copy and redistribute it,
 1535:      with or without modifying it, either commercially or
 1536:      noncommercially.  Secondarily, this License preserves for the
 1537:      author and publisher a way to get credit for their work, while not
 1538:      being considered responsible for modifications made by others.
 1539: 
 1540:      This License is a kind of "copyleft", which means that derivative
 1541:      works of the document must themselves be free in the same sense.
 1542:      It complements the GNU General Public License, which is a copyleft
 1543:      license designed for free software.
 1544: 
 1545:      We have designed this License in order to use it for manuals for
 1546:      free software, because free software needs free documentation: a
 1547:      free program should come with manuals providing the same freedoms
 1548:      that the software does.  But this License is not limited to
 1549:      software manuals; it can be used for any textual work, regardless
 1550:      of subject matter or whether it is published as a printed book.  We
 1551:      recommend this License principally for works whose purpose is
 1552:      instruction or reference.
 1553: 
 1554:   1. APPLICABILITY AND DEFINITIONS
 1555: 
 1556:      This License applies to any manual or other work, in any medium,
 1557:      that contains a notice placed by the copyright holder saying it can
 1558:      be distributed under the terms of this License.  Such a notice
 1559:      grants a world-wide, royalty-free license, unlimited in duration,
 1560:      to use that work under the conditions stated herein.  The
 1561:      "Document", below, refers to any such manual or work.  Any member
 1562:      of the public is a licensee, and is addressed as "you".  You accept
 1563:      the license if you copy, modify or distribute the work in a way
 1564:      requiring permission under copyright law.
 1565: 
 1566:      A "Modified Version" of the Document means any work containing the
 1567:      Document or a portion of it, either copied verbatim, or with
 1568:      modifications and/or translated into another language.
 1569: 
 1570:      A "Secondary Section" is a named appendix or a front-matter section
 1571:      of the Document that deals exclusively with the relationship of the
 1572:      publishers or authors of the Document to the Document's overall
 1573:      subject (or to related matters) and contains nothing that could
 1574:      fall directly within that overall subject.  (Thus, if the Document
 1575:      is in part a textbook of mathematics, a Secondary Section may not
 1576:      explain any mathematics.)  The relationship could be a matter of
 1577:      historical connection with the subject or with related matters, or
 1578:      of legal, commercial, philosophical, ethical or political position
 1579:      regarding them.
 1580: 
 1581:      The "Invariant Sections" are certain Secondary Sections whose
 1582:      titles are designated, as being those of Invariant Sections, in the
 1583:      notice that says that the Document is released under this License.
 1584:      If a section does not fit the above definition of Secondary then it
 1585:      is not allowed to be designated as Invariant.  The Document may
 1586:      contain zero Invariant Sections.  If the Document does not identify
 1587:      any Invariant Sections then there are none.
 1588: 
 1589:      The "Cover Texts" are certain short passages of text that are
 1590:      listed, as Front-Cover Texts or Back-Cover Texts, in the notice
 1591:      that says that the Document is released under this License.  A
 1592:      Front-Cover Text may be at most 5 words, and a Back-Cover Text may
 1593:      be at most 25 words.
 1594: 
 1595:      A "Transparent" copy of the Document means a machine-readable copy,
 1596:      represented in a format whose specification is available to the
 1597:      general public, that is suitable for revising the document
 1598:      straightforwardly with generic text editors or (for images composed
 1599:      of pixels) generic paint programs or (for drawings) some widely
 1600:      available drawing editor, and that is suitable for input to text
 1601:      formatters or for automatic translation to a variety of formats
 1602:      suitable for input to text formatters.  A copy made in an otherwise
 1603:      Transparent file format whose markup, or absence of markup, has
 1604:      been arranged to thwart or discourage subsequent modification by
 1605:      readers is not Transparent.  An image format is not Transparent if
 1606:      used for any substantial amount of text.  A copy that is not
 1607:      "Transparent" is called "Opaque".
 1608: 
 1609:      Examples of suitable formats for Transparent copies include plain
 1610:      ASCII without markup, Texinfo input format, LaTeX input format,
 1611:      SGML or XML using a publicly available DTD, and standard-conforming
 1612:      simple HTML, PostScript or PDF designed for human modification.
 1613:      Examples of transparent image formats include PNG, XCF and JPG.
 1614:      Opaque formats include proprietary formats that can be read and
 1615:      edited only by proprietary word processors, SGML or XML for which
 1616:      the DTD and/or processing tools are not generally available, and
 1617:      the machine-generated HTML, PostScript or PDF produced by some word
 1618:      processors for output purposes only.
 1619: 
 1620:      The "Title Page" means, for a printed book, the title page itself,
 1621:      plus such following pages as are needed to hold, legibly, the
 1622:      material this License requires to appear in the title page.  For
 1623:      works in formats which do not have any title page as such, "Title
 1624:      Page" means the text near the most prominent appearance of the
 1625:      work's title, preceding the beginning of the body of the text.
 1626: 
 1627:      The "publisher" means any person or entity that distributes copies
 1628:      of the Document to the public.
 1629: 
 1630:      A section "Entitled XYZ" means a named subunit of the Document
 1631:      whose title either is precisely XYZ or contains XYZ in parentheses
 1632:      following text that translates XYZ in another language.  (Here XYZ
 1633:      stands for a specific section name mentioned below, such as
 1634:      "Acknowledgements", "Dedications", "Endorsements", or "History".)
 1635:      To "Preserve the Title" of such a section when you modify the
 1636:      Document means that it remains a section "Entitled XYZ" according
 1637:      to this definition.
 1638: 
 1639:      The Document may include Warranty Disclaimers next to the notice
 1640:      which states that this License applies to the Document.  These
 1641:      Warranty Disclaimers are considered to be included by reference in
 1642:      this License, but only as regards disclaiming warranties: any other
 1643:      implication that these Warranty Disclaimers may have is void and
 1644:      has no effect on the meaning of this License.
 1645: 
 1646:   2. VERBATIM COPYING
 1647: 
 1648:      You may copy and distribute the Document in any medium, either
 1649:      commercially or noncommercially, provided that this License, the
 1650:      copyright notices, and the license notice saying this License
 1651:      applies to the Document are reproduced in all copies, and that you
 1652:      add no other conditions whatsoever to those of this License.  You
 1653:      may not use technical measures to obstruct or control the reading
 1654:      or further copying of the copies you make or distribute.  However,
 1655:      you may accept compensation in exchange for copies.  If you
 1656:      distribute a large enough number of copies you must also follow the
 1657:      conditions in section 3.
 1658: 
 1659:      You may also lend copies, under the same conditions stated above,
 1660:      and you may publicly display copies.
 1661: 
 1662:   3. COPYING IN QUANTITY
 1663: 
 1664:      If you publish printed copies (or copies in media that commonly
 1665:      have printed covers) of the Document, numbering more than 100, and
 1666:      the Document's license notice requires Cover Texts, you must
 1667:      enclose the copies in covers that carry, clearly and legibly, all
 1668:      these Cover Texts: Front-Cover Texts on the front cover, and
 1669:      Back-Cover Texts on the back cover.  Both covers must also clearly
 1670:      and legibly identify you as the publisher of these copies.  The
 1671:      front cover must present the full title with all words of the title
 1672:      equally prominent and visible.  You may add other material on the
 1673:      covers in addition.  Copying with changes limited to the covers, as
 1674:      long as they preserve the title of the Document and satisfy these
 1675:      conditions, can be treated as verbatim copying in other respects.
 1676: 
 1677:      If the required texts for either cover are too voluminous to fit
 1678:      legibly, you should put the first ones listed (as many as fit
 1679:      reasonably) on the actual cover, and continue the rest onto
 1680:      adjacent pages.
 1681: 
 1682:      If you publish or distribute Opaque copies of the Document
 1683:      numbering more than 100, you must either include a machine-readable
 1684:      Transparent copy along with each Opaque copy, or state in or with
 1685:      each Opaque copy a computer-network location from which the general
 1686:      network-using public has access to download using public-standard
 1687:      network protocols a complete Transparent copy of the Document, free
 1688:      of added material.  If you use the latter option, you must take
 1689:      reasonably prudent steps, when you begin distribution of Opaque
 1690:      copies in quantity, to ensure that this Transparent copy will
 1691:      remain thus accessible at the stated location until at least one
 1692:      year after the last time you distribute an Opaque copy (directly or
 1693:      through your agents or retailers) of that edition to the public.
 1694: 
 1695:      It is requested, but not required, that you contact the authors of
 1696:      the Document well before redistributing any large number of copies,
 1697:      to give them a chance to provide you with an updated version of the
 1698:      Document.
 1699: 
 1700:   4. MODIFICATIONS
 1701: 
 1702:      You may copy and distribute a Modified Version of the Document
 1703:      under the conditions of sections 2 and 3 above, provided that you
 1704:      release the Modified Version under precisely this License, with the
 1705:      Modified Version filling the role of the Document, thus licensing
 1706:      distribution and modification of the Modified Version to whoever
 1707:      possesses a copy of it.  In addition, you must do these things in
 1708:      the Modified Version:
 1709: 
 1710:        A. Use in the Title Page (and on the covers, if any) a title
 1711:           distinct from that of the Document, and from those of previous
 1712:           versions (which should, if there were any, be listed in the
 1713:           History section of the Document).  You may use the same title
 1714:           as a previous version if the original publisher of that
 1715:           version gives permission.
 1716: 
 1717:        B. List on the Title Page, as authors, one or more persons or
 1718:           entities responsible for authorship of the modifications in
 1719:           the Modified Version, together with at least five of the
 1720:           principal authors of the Document (all of its principal
 1721:           authors, if it has fewer than five), unless they release you
 1722:           from this requirement.
 1723: 
 1724:        C. State on the Title page the name of the publisher of the
 1725:           Modified Version, as the publisher.
 1726: 
 1727:        D. Preserve all the copyright notices of the Document.
 1728: 
 1729:        E. Add an appropriate copyright notice for your modifications
 1730:           adjacent to the other copyright notices.
 1731: 
 1732:        F. Include, immediately after the copyright notices, a license
 1733:           notice giving the public permission to use the Modified
 1734:           Version under the terms of this License, in the form shown in
 1735:           the Addendum below.
 1736: 
 1737:        G. Preserve in that license notice the full lists of Invariant
 1738:           Sections and required Cover Texts given in the Document's
 1739:           license notice.
 1740: 
 1741:        H. Include an unaltered copy of this License.
 1742: 
 1743:        I. Preserve the section Entitled "History", Preserve its Title,
 1744:           and add to it an item stating at least the title, year, new
 1745:           authors, and publisher of the Modified Version as given on the
 1746:           Title Page.  If there is no section Entitled "History" in the
 1747:           Document, create one stating the title, year, authors, and
 1748:           publisher of the Document as given on its Title Page, then add
 1749:           an item describing the Modified Version as stated in the
 1750:           previous sentence.
 1751: 
 1752:        J. Preserve the network location, if any, given in the Document
 1753:           for public access to a Transparent copy of the Document, and
 1754:           likewise the network locations given in the Document for
 1755:           previous versions it was based on.  These may be placed in the
 1756:           "History" section.  You may omit a network location for a work
 1757:           that was published at least four years before the Document
 1758:           itself, or if the original publisher of the version it refers
 1759:           to gives permission.
 1760: 
 1761:        K. For any section Entitled "Acknowledgements" or "Dedications",
 1762:           Preserve the Title of the section, and preserve in the section
 1763:           all the substance and tone of each of the contributor
 1764:           acknowledgements and/or dedications given therein.
 1765: 
 1766:        L. Preserve all the Invariant Sections of the Document, unaltered
 1767:           in their text and in their titles.  Section numbers or the
 1768:           equivalent are not considered part of the section titles.
 1769: 
 1770:        M. Delete any section Entitled "Endorsements".  Such a section
 1771:           may not be included in the Modified Version.
 1772: 
 1773:        N. Do not retitle any existing section to be Entitled
 1774:           "Endorsements" or to conflict in title with any Invariant
 1775:           Section.
 1776: 
 1777:        O. Preserve any Warranty Disclaimers.
 1778: 
 1779:      If the Modified Version includes new front-matter sections or
 1780:      appendices that qualify as Secondary Sections and contain no
 1781:      material copied from the Document, you may at your option designate
 1782:      some or all of these sections as invariant.  To do this, add their
 1783:      titles to the list of Invariant Sections in the Modified Version's
 1784:      license notice.  These titles must be distinct from any other
 1785:      section titles.
 1786: 
 1787:      You may add a section Entitled "Endorsements", provided it contains
 1788:      nothing but endorsements of your Modified Version by various
 1789:      parties--for example, statements of peer review or that the text
 1790:      has been approved by an organization as the authoritative
 1791:      definition of a standard.
 1792: 
 1793:      You may add a passage of up to five words as a Front-Cover Text,
 1794:      and a passage of up to 25 words as a Back-Cover Text, to the end of
 1795:      the list of Cover Texts in the Modified Version.  Only one passage
 1796:      of Front-Cover Text and one of Back-Cover Text may be added by (or
 1797:      through arrangements made by) any one entity.  If the Document
 1798:      already includes a cover text for the same cover, previously added
 1799:      by you or by arrangement made by the same entity you are acting on
 1800:      behalf of, you may not add another; but you may replace the old
 1801:      one, on explicit permission from the previous publisher that added
 1802:      the old one.
 1803: 
 1804:      The author(s) and publisher(s) of the Document do not by this
 1805:      License give permission to use their names for publicity for or to
 1806:      assert or imply endorsement of any Modified Version.
 1807: 
 1808:   5. COMBINING DOCUMENTS
 1809: 
 1810:      You may combine the Document with other documents released under
 1811:      this License, under the terms defined in section 4 above for
 1812:      modified versions, provided that you include in the combination all
 1813:      of the Invariant Sections of all of the original documents,
 1814:      unmodified, and list them all as Invariant Sections of your
 1815:      combined work in its license notice, and that you preserve all
 1816:      their Warranty Disclaimers.
 1817: 
 1818:      The combined work need only contain one copy of this License, and
 1819:      multiple identical Invariant Sections may be replaced with a single
 1820:      copy.  If there are multiple Invariant Sections with the same name
 1821:      but different contents, make the title of each such section unique
 1822:      by adding at the end of it, in parentheses, the name of the
 1823:      original author or publisher of that section if known, or else a
 1824:      unique number.  Make the same adjustment to the section titles in
 1825:      the list of Invariant Sections in the license notice of the
 1826:      combined work.
 1827: 
 1828:      In the combination, you must combine any sections Entitled
 1829:      "History" in the various original documents, forming one section
 1830:      Entitled "History"; likewise combine any sections Entitled
 1831:      "Acknowledgements", and any sections Entitled "Dedications".  You
 1832:      must delete all sections Entitled "Endorsements."
 1833: 
 1834:   6. COLLECTIONS OF DOCUMENTS
 1835: 
 1836:      You may make a collection consisting of the Document and other
 1837:      documents released under this License, and replace the individual
 1838:      copies of this License in the various documents with a single copy
 1839:      that is included in the collection, provided that you follow the
 1840:      rules of this License for verbatim copying of each of the documents
 1841:      in all other respects.
 1842: 
 1843:      You may extract a single document from such a collection, and
 1844:      distribute it individually under this License, provided you insert
 1845:      a copy of this License into the extracted document, and follow this
 1846:      License in all other respects regarding verbatim copying of that
 1847:      document.
 1848: 
 1849:   7. AGGREGATION WITH INDEPENDENT WORKS
 1850: 
 1851:      A compilation of the Document or its derivatives with other
 1852:      separate and independent documents or works, in or on a volume of a
 1853:      storage or distribution medium, is called an "aggregate" if the
 1854:      copyright resulting from the compilation is not used to limit the
 1855:      legal rights of the compilation's users beyond what the individual
 1856:      works permit.  When the Document is included in an aggregate, this
 1857:      License does not apply to the other works in the aggregate which
 1858:      are not themselves derivative works of the Document.
 1859: 
 1860:      If the Cover Text requirement of section 3 is applicable to these
 1861:      copies of the Document, then if the Document is less than one half
 1862:      of the entire aggregate, the Document's Cover Texts may be placed
 1863:      on covers that bracket the Document within the aggregate, or the
 1864:      electronic equivalent of covers if the Document is in electronic
 1865:      form.  Otherwise they must appear on printed covers that bracket
 1866:      the whole aggregate.
 1867: 
 1868:   8. TRANSLATION
 1869: 
 1870:      Translation is considered a kind of modification, so you may
 1871:      distribute translations of the Document under the terms of section
 1872:      4.  Replacing Invariant Sections with translations requires special
 1873:      permission from their copyright holders, but you may include
 1874:      translations of some or all Invariant Sections in addition to the
 1875:      original versions of these Invariant Sections.  You may include a
 1876:      translation of this License, and all the license notices in the
 1877:      Document, and any Warranty Disclaimers, provided that you also
 1878:      include the original English version of this License and the
 1879:      original versions of those notices and disclaimers.  In case of a
 1880:      disagreement between the translation and the original version of
 1881:      this License or a notice or disclaimer, the original version will
 1882:      prevail.
 1883: 
 1884:      If a section in the Document is Entitled "Acknowledgements",
 1885:      "Dedications", or "History", the requirement (section 4) to
 1886:      Preserve its Title (section 1) will typically require changing the
 1887:      actual title.
 1888: 
 1889:   9. TERMINATION
 1890: 
 1891:      You may not copy, modify, sublicense, or distribute the Document
 1892:      except as expressly provided under this License.  Any attempt
 1893:      otherwise to copy, modify, sublicense, or distribute it is void,
 1894:      and will automatically terminate your rights under this License.
 1895: 
 1896:      However, if you cease all violation of this License, then your
 1897:      license from a particular copyright holder is reinstated (a)
 1898:      provisionally, unless and until the copyright holder explicitly and
 1899:      finally terminates your license, and (b) permanently, if the
 1900:      copyright holder fails to notify you of the violation by some
 1901:      reasonable means prior to 60 days after the cessation.
 1902: 
 1903:      Moreover, your license from a particular copyright holder is
 1904:      reinstated permanently if the copyright holder notifies you of the
 1905:      violation by some reasonable means, this is the first time you have
 1906:      received notice of violation of this License (for any work) from
 1907:      that copyright holder, and you cure the violation prior to 30 days
 1908:      after your receipt of the notice.
 1909: 
 1910:      Termination of your rights under this section does not terminate
 1911:      the licenses of parties who have received copies or rights from you
 1912:      under this License.  If your rights have been terminated and not
 1913:      permanently reinstated, receipt of a copy of some or all of the
 1914:      same material does not give you any rights to use it.
 1915: 
 1916:   10. FUTURE REVISIONS OF THIS LICENSE
 1917: 
 1918:      The Free Software Foundation may publish new, revised versions of
 1919:      the GNU Free Documentation License from time to time.  Such new
 1920:      versions will be similar in spirit to the present version, but may
 1921:      differ in detail to address new problems or concerns.  See
 1922:      <http://www.gnu.org/copyleft/>.
 1923: 
 1924:      Each version of the License is given a distinguishing version
 1925:      number.  If the Document specifies that a particular numbered
 1926:      version of this License "or any later version" applies to it, you
 1927:      have the option of following the terms and conditions either of
 1928:      that specified version or of any later version that has been
 1929:      published (not as a draft) by the Free Software Foundation.  If the
 1930:      Document does not specify a version number of this License, you may
 1931:      choose any version ever published (not as a draft) by the Free
 1932:      Software Foundation.  If the Document specifies that a proxy can
 1933:      decide which future versions of this License can be used, that
 1934:      proxy's public statement of acceptance of a version permanently
 1935:      authorizes you to choose that version for the Document.
 1936: 
 1937:   11. RELICENSING
 1938: 
 1939:      "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
 1940:      World Wide Web server that publishes copyrightable works and also
 1941:      provides prominent facilities for anybody to edit those works.  A
 1942:      public wiki that anybody can edit is an example of such a server.
 1943:      A "Massive Multiauthor Collaboration" (or "MMC") contained in the
 1944:      site means any set of copyrightable works thus published on the MMC
 1945:      site.
 1946: 
 1947:      "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
 1948:      license published by Creative Commons Corporation, a not-for-profit
 1949:      corporation with a principal place of business in San Francisco,
 1950:      California, as well as future copyleft versions of that license
 1951:      published by that same organization.
 1952: 
 1953:      "Incorporate" means to publish or republish a Document, in whole or
 1954:      in part, as part of another Document.
 1955: 
 1956:      An MMC is "eligible for relicensing" if it is licensed under this
 1957:      License, and if all works that were first published under this
 1958:      License somewhere other than this MMC, and subsequently
 1959:      incorporated in whole or in part into the MMC, (1) had no cover
 1960:      texts or invariant sections, and (2) were thus incorporated prior
 1961:      to November 1, 2008.
 1962: 
 1963:      The operator of an MMC Site may republish an MMC contained in the
 1964:      site under CC-BY-SA on the same site at any time before August 1,
 1965:      2009, provided the MMC is eligible for relicensing.
 1966: 
 1967: ADDENDUM: How to use this License for your documents
 1968: ====================================================
 1969: 
 1970: To use this License in a document you have written, include a copy of
 1971: the License in the document and put the following copyright and license
 1972: notices just after the title page:
 1973: 
 1974:        Copyright (C)  YEAR  YOUR NAME.
 1975:        Permission is granted to copy, distribute and/or modify this document
 1976:        under the terms of the GNU Free Documentation License, Version 1.3
 1977:        or any later version published by the Free Software Foundation;
 1978:        with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
 1979:        Texts.  A copy of the license is included in the section entitled ``GNU
 1980:        Free Documentation License''.
 1981: 
 1982:    If you have Invariant Sections, Front-Cover Texts and Back-Cover
 1983: Texts, replace the "with...Texts."  line with this:
 1984: 
 1985:          with the Invariant Sections being LIST THEIR TITLES, with
 1986:          the Front-Cover Texts being LIST, and with the Back-Cover Texts
 1987:          being LIST.
 1988: 
 1989:    If you have Invariant Sections without Cover Texts, or some other
 1990: combination of the three, merge those two alternatives to suit the
 1991: situation.
 1992: 
 1993:    If your document contains nontrivial examples of program code, we
 1994: recommend releasing these examples in parallel under your choice of free
 1995: software license, such as the GNU General Public License, to permit
 1996: their use in free software.
 1997: 
 1998: 
 1999: 
 2000: Tag Table:
 2001: Node: Top907
 2002: Node: Command Line Editing1429
 2003: Node: Introduction and Notation2083
 2004: Node: Readline Interaction3708
 2005: Node: Readline Bare Essentials4901
 2006: Node: Readline Movement Commands6686
 2007: Node: Readline Killing Commands7648
 2008: Node: Readline Arguments9568
 2009: Node: Searching10614
 2010: Node: Readline Init File12768
 2011: Node: Readline Init File Syntax13923
 2012: Node: Conditional Init Constructs34182
 2013: Node: Sample Init File38380
 2014: Node: Bindable Readline Commands41506
 2015: Node: Commands For Moving42562
 2016: Node: Commands For History44322
 2017: Node: Commands For Text49086
 2018: Node: Commands For Killing52790
 2019: Node: Numeric Arguments55505
 2020: Node: Commands For Completion56646
 2021: Node: Keyboard Macros58616
 2022: Node: Miscellaneous Commands59305
 2023: Node: Readline vi Mode63228
 2024: Node: GNU Free Documentation License64142
 2025: 
 2026: End Tag Table
 2027: 
 2028: 
 2029: Local Variables:
 2030: coding: utf-8
 2031: End:

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>