Annotation of embedaddon/readline/doc/rluserman.info, revision 1.1.1.2
1.1.1.2 ! misho 1: This is rluserman.info, produced by makeinfo version 6.7 from
! 2: rluserman.texi.
1.1 misho 3:
4: This manual describes the end user interface of the GNU Readline Library
1.1.1.2 ! misho 5: (version 8.1, 29 October 2020), a library which aids in the consistency
1.1 misho 6: of user interface across discrete programs which provide a command line
7: interface.
8:
1.1.1.2 ! misho 9: Copyright (C) 1988-2020 Free Software Foundation, Inc.
1.1 misho 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
1.1.1.2 ! misho 32: Readline home page is <http://www.gnu.org/software/readline/>.
1.1 misho 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:
1.1.1.2 ! misho 67: The text 'C-k' is read as 'Control-K' and describes the character
1.1 misho 68: produced when the <k> key is pressed while the Control key is depressed.
69:
1.1.1.2 ! misho 70: The text 'M-k' is read as 'Meta-K' and describes the character
1.1 misho 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:
1.1.1.2 ! misho 84: The text 'M-C-k' is read as 'Meta-Control-k' and describes the
! 85: character produced by "metafying" 'C-k'.
1.1 misho 86:
1.1.1.2 ! misho 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.
1.1 misho 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:
1.1.1.2 ! misho 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'.
1.1 misho 134:
135: When you add text in the middle of a line, you will notice that
1.1.1.2 ! misho 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.
1.1 misho 141:
1.1.1.2 ! misho 142: 'C-b'
1.1 misho 143: Move back one character.
1.1.1.2 ! misho 144: 'C-f'
1.1 misho 145: Move forward one character.
146: <DEL> or <Backspace>
147: Delete the character to the left of the cursor.
1.1.1.2 ! misho 148: 'C-d'
1.1 misho 149: Delete the character underneath the cursor.
150: Printing characters
151: Insert the character into the line at the cursor.
1.1.1.2 ! misho 152: 'C-_' or 'C-x C-u'
1.1 misho 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
1.1.1.2 ! misho 158: the character underneath the cursor, like 'C-d', rather than the
1.1 misho 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
1.1.1.2 ! misho 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.
1.1 misho 171:
1.1.1.2 ! misho 172: 'C-a'
1.1 misho 173: Move to the start of the line.
1.1.1.2 ! misho 174: 'C-e'
1.1 misho 175: Move to the end of the line.
1.1.1.2 ! misho 176: 'M-f'
1.1 misho 177: Move forward a word, where a word is composed of letters and
178: digits.
1.1.1.2 ! misho 179: 'M-b'
1.1 misho 180: Move backward a word.
1.1.1.2 ! misho 181: 'C-l'
1.1 misho 182: Clear the screen, reprinting the current line at the top.
183:
1.1.1.2 ! misho 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.
1.1 misho 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
1.1.1.2 ! misho 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'.)
1.1 misho 197:
1.1.1.2 ! misho 198: If the description for a command says that it 'kills' text, then you
1.1 misho 199: can be sure that you can get the text back in a different (or the same)
200: place later.
201:
1.1.1.2 ! misho 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
1.1 misho 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
1.1.1.2 ! misho 206: available to be yanked back later, when you are typing another line.
1.1 misho 207:
208: Here is the list of commands for killing text.
209:
1.1.1.2 ! misho 210: 'C-k'
1.1 misho 211: Kill the text from the current cursor position to the end of the
212: line.
213:
1.1.1.2 ! misho 214: 'M-d'
1.1 misho 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
1.1.1.2 ! misho 217: as those used by 'M-f'.
1.1 misho 218:
1.1.1.2 ! misho 219: 'M-<DEL>'
1.1 misho 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
1.1.1.2 ! misho 222: same as those used by 'M-b'.
1.1 misho 223:
1.1.1.2 ! misho 224: 'C-w'
! 225: Kill from the cursor to the previous whitespace. This is different
! 226: than 'M-<DEL>' because the word boundaries differ.
1.1 misho 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:
1.1.1.2 ! misho 231: 'C-y'
1.1 misho 232: Yank the most recently killed text back into the buffer at the
233: cursor.
234:
1.1.1.2 ! misho 235: 'M-y'
1.1 misho 236: Rotate the kill-ring, and yank the new top. You can only do this
1.1.1.2 ! misho 237: if the prior command is 'C-y' or 'M-y'.
1.1 misho 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
1.1.1.2 ! misho 250: start of the line, you might type 'M-- C-k'.
1.1 misho 251:
252: The general way to pass numeric arguments to a command is to type
1.1.1.2 ! misho 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
1.1 misho 255: have typed one meta digit to get the argument started, you can type the
1.1.1.2 ! misho 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.
1.1 misho 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:
1.1.1.2 ! misho 266: Readline provides commands for searching through the command history for
! 267: lines containing a specified string. There are two search modes:
1.1 misho 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
1.1.1.2 ! misho 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
1.1 misho 278: search. If that variable has not been assigned a value, the <ESC> and
1.1.1.2 ! misho 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
1.1 misho 290: history list. A movement command will terminate the search, make the
291: last line found the current line, and begin editing.
292:
1.1.1.2 ! misho 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.
1.1 misho 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:
1.1.1.2 ! misho 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
1.1 misho 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
1.1.1.2 ! misho 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'.
1.1 misho 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:
1.1.1.2 ! misho 319: In addition, the 'C-x C-r' command re-reads this init file, thus
1.1 misho 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:
1.1.1.2 ! misho 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.
1.1 misho 341:
342: Variable Settings
343: You can modify the run-time behavior of Readline by altering the
1.1.1.2 ! misho 344: values of variables in Readline using the 'set' command within the
1.1 misho 345: init file. The syntax is simple:
346:
347: set VARIABLE VALUE
348:
1.1.1.2 ! misho 349: Here, for example, is how to change from the default Emacs-like key
! 350: binding to use 'vi' line editing commands:
1.1 misho 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
1.1.1.2 ! misho 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.
1.1 misho 360:
361: A great deal of run-time behavior is changeable with the following
362: variables.
363:
1.1.1.2 ! misho 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'.
1.1 misho 387:
1.1.1.2 ! misho 388: 'colored-stats'
! 389: If set to 'on', Readline displays possible completions using
1.1 misho 390: different colors to indicate their file type. The color
1.1.1.2 ! misho 391: definitions are taken from the value of the 'LS_COLORS'
! 392: environment variable. The default is 'off'.
1.1 misho 393:
1.1.1.2 ! misho 394: 'comment-begin'
1.1 misho 395: The string to insert at the beginning of the line when the
1.1.1.2 ! misho 396: 'insert-comment' command is executed. The default value is
! 397: '"#"'.
1.1 misho 398:
1.1.1.2 ! misho 399: 'completion-display-width'
1.1 misho 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:
1.1.1.2 ! misho 406: 'completion-ignore-case'
! 407: If set to 'on', Readline performs filename matching and
1.1 misho 408: completion in a case-insensitive fashion. The default value
1.1.1.2 ! misho 409: is 'off'.
1.1 misho 410:
1.1.1.2 ! misho 411: 'completion-map-case'
! 412: If set to 'on', and COMPLETION-IGNORE-CASE is enabled,
! 413: Readline treats hyphens ('-') and underscores ('_') as
1.1 misho 414: equivalent when performing case-insensitive filename matching
1.1.1.2 ! misho 415: and completion. The default value is 'off'.
1.1 misho 416:
1.1.1.2 ! misho 417: 'completion-prefix-display-length'
1.1 misho 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:
1.1.1.2 ! misho 424: 'completion-query-items'
1.1 misho 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
1.1.1.2 ! misho 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'.
1.1 misho 433:
1.1.1.2 ! misho 434: 'convert-meta'
! 435: If set to 'on', Readline will convert characters with the
1.1 misho 436: eighth bit set to an ASCII key sequence by stripping the
437: eighth bit and prefixing an <ESC> character, converting them
1.1.1.2 ! misho 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'.
1.1 misho 446:
1.1.1.2 ! misho 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'.
1.1 misho 451:
1.1.1.2 ! misho 452: 'editing-mode'
! 453: The 'editing-mode' variable controls which default set of key
1.1 misho 454: bindings is used. By default, Readline starts up in Emacs
455: editing mode, where the keystrokes are most similar to Emacs.
1.1.1.2 ! misho 456: This variable can be set to either 'emacs' or 'vi'.
1.1 misho 457:
1.1.1.2 ! misho 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'.
1.1 misho 475:
1.1.1.2 ! misho 476: 'enable-keypad'
! 477: When set to 'on', Readline will try to enable the application
1.1 misho 478: keypad when it is called. Some systems need this to enable
1.1.1.2 ! misho 479: the arrow keys. The default is 'off'.
1.1 misho 480:
1.1.1.2 ! misho 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'.
1.1 misho 490:
1.1.1.2 ! misho 491: 'history-preserve-point'
! 492: If set to 'on', the history code attempts to place the point
1.1 misho 493: (the current cursor position) at the same location on each
1.1.1.2 ! misho 494: history line retrieved with 'previous-history' or
! 495: 'next-history'. The default is 'off'.
1.1 misho 496:
1.1.1.2 ! misho 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
1.1 misho 509: scroll horizontally on a single screen line when they are
510: longer than the width of the screen, instead of wrapping onto
1.1.1.2 ! misho 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'.
1.1 misho 514:
1.1.1.2 ! misho 515: 'input-meta'
! 516: If set to 'on', Readline will enable eight-bit input (it will
1.1 misho 517: not clear the eighth bit in the characters it reads),
518: regardless of what the terminal claims it can support. The
1.1.1.2 ! misho 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.
1.1 misho 522:
1.1.1.2 ! misho 523: 'isearch-terminators'
1.1 misho 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
1.1.1.2 ! misho 527: given a value, the characters <ESC> and 'C-J' will terminate
1.1 misho 528: an incremental search.
529:
1.1.1.2 ! misho 530: 'keymap'
1.1 misho 531: Sets Readline's idea of the current keymap for key binding
1.1.1.2 ! misho 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
1.1 misho 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
1.1.1.2 ! misho 553: pressed to decide which key sequence to complete. The default
! 554: value is '500'.
1.1 misho 555:
1.1.1.2 ! misho 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.
1.1 misho 564:
1.1.1.2 ! misho 565: 'mark-symlinked-directories'
! 566: If set to 'on', completed names which are symbolic links to
1.1 misho 567: directories have a slash appended (subject to the value of
1.1.1.2 ! misho 568: 'mark-directories'). The default is 'off'.
1.1 misho 569:
1.1.1.2 ! misho 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.
1.1 misho 576:
1.1.1.2 ! misho 577: 'menu-complete-display-prefix'
! 578: If set to 'on', menu completion displays the common prefix of
1.1 misho 579: the list of possible completions (which may be empty) before
1.1.1.2 ! misho 580: cycling through the list. The default is 'off'.
1.1 misho 581:
1.1.1.2 ! misho 582: 'output-meta'
! 583: If set to 'on', Readline will display characters with the
1.1 misho 584: eighth bit set directly rather than as a meta-prefixed escape
1.1.1.2 ! misho 585: sequence. The default is 'off', but Readline will set it to
! 586: 'on' if the locale contains eight-bit characters.
1.1 misho 587:
1.1.1.2 ! misho 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.
1.1 misho 592:
1.1.1.2 ! misho 593: 'print-completions-horizontally'
! 594: If set to 'on', Readline will display completions with matches
1.1 misho 595: sorted horizontally in alphabetical order, rather than down
1.1.1.2 ! misho 596: the screen. The default is 'off'.
1.1 misho 597:
1.1.1.2 ! misho 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
1.1 misho 601: default, history lines may be modified and retain individual
1.1.1.2 ! misho 602: undo lists across calls to 'readline'. The default is 'off'.
1.1 misho 603:
1.1.1.2 ! misho 604: 'show-all-if-ambiguous'
1.1 misho 605: This alters the default behavior of the completion functions.
1.1.1.2 ! misho 606: If set to 'on', words which have more than one possible
1.1 misho 607: completion cause the matches to be listed immediately instead
1.1.1.2 ! misho 608: of ringing the bell. The default value is 'off'.
1.1 misho 609:
1.1.1.2 ! misho 610: 'show-all-if-unmodified'
1.1 misho 611: This alters the default behavior of the completion functions
612: in a fashion similar to SHOW-ALL-IF-AMBIGUOUS. If set to
1.1.1.2 ! misho 613: 'on', words which have more than one possible completion
1.1 misho 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
1.1.1.2 ! misho 617: default value is 'off'.
1.1 misho 618:
1.1.1.2 ! misho 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'.
1.1 misho 664:
665: Key Bindings
1.1.1.2 ! misho 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.
1.1 misho 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:
1.1.1.2 ! misho 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).
1.1 misho 681:
1.1.1.2 ! misho 682: KEYNAME: FUNCTION-NAME or MACRO
1.1 misho 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:
1.1.1.2 ! misho 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
1.1 misho 692: expressed on the right hand side (that is, to insert the text
1.1.1.2 ! misho 693: '> output' into the line).
1.1 misho 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:
1.1.1.2 ! misho 699: "KEYSEQ": FUNCTION-NAME or MACRO
1.1 misho 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:
1.1.1.2 ! misho 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'.
1.1 misho 715:
716: The following GNU Emacs style escape sequences are available when
717: specifying key sequences:
718:
1.1.1.2 ! misho 719: '\C-'
1.1 misho 720: control prefix
1.1.1.2 ! misho 721: '\M-'
1.1 misho 722: meta prefix
1.1.1.2 ! misho 723: '\e'
1.1 misho 724: an escape character
1.1.1.2 ! misho 725: '\\'
1.1 misho 726: backslash
1.1.1.2 ! misho 727: '\"'
1.1 misho 728: <">, a double quotation mark
1.1.1.2 ! misho 729: '\''
1.1 misho 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:
1.1.1.2 ! misho 735: '\a'
1.1 misho 736: alert (bell)
1.1.1.2 ! misho 737: '\b'
1.1 misho 738: backspace
1.1.1.2 ! misho 739: '\d'
1.1 misho 740: delete
1.1.1.2 ! misho 741: '\f'
1.1 misho 742: form feed
1.1.1.2 ! misho 743: '\n'
1.1 misho 744: newline
1.1.1.2 ! misho 745: '\r'
1.1 misho 746: carriage return
1.1.1.2 ! misho 747: '\t'
1.1 misho 748: horizontal tab
1.1.1.2 ! misho 749: '\v'
1.1 misho 750: vertical tab
1.1.1.2 ! misho 751: '\NNN'
1.1 misho 752: the eight-bit character whose value is the octal value NNN
753: (one to three digits)
1.1.1.2 ! misho 754: '\xHH'
1.1 misho 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
1.1.1.2 ! misho 762: character in the macro text, including '"' and '''. For example,
! 763: the following binding will make ''C-x' \' insert a single '\' into
1.1 misho 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
1.1.1.2 ! misho 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.
1.1 misho 791:
1.1.1.2 ! misho 792: 'term'
! 793: The 'term=' form may be used to include terminal-specific key
1.1 misho 794: bindings, perhaps to bind the key sequences output by the
795: terminal's function keys. The word on the right side of the
1.1.1.2 ! misho 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
1.1 misho 815:
1.1.1.2 ! misho 816: 'application'
1.1 misho 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:
1.1.1.2 ! misho 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'
1.1 misho 845: command.
846:
1.1.1.2 ! misho 847: '$else'
! 848: Commands in this branch of the '$if' directive are executed if the
1.1 misho 849: test fails.
850:
1.1.1.2 ! misho 851: '$include'
1.1 misho 852: This directive takes a single filename as an argument and reads
853: commands and bindings from that file. For example, the following
1.1.1.2 ! misho 854: directive reads from '/etc/inputrc':
1.1 misho 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:
1.1.1.2 ! misho 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
1.1 misho 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:
1.1.1.2 ! misho 983: This section describes Readline commands that may be bound to key
1.1 misho 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
1.1.1.2 ! misho 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".
1.1 misho 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:
1.1.1.2 ! misho 998: 'beginning-of-line (C-a)'
1.1 misho 999: Move to the start of the current line.
1000:
1.1.1.2 ! misho 1001: 'end-of-line (C-e)'
1.1 misho 1002: Move to the end of the line.
1003:
1.1.1.2 ! misho 1004: 'forward-char (C-f)'
1.1 misho 1005: Move forward a character.
1006:
1.1.1.2 ! misho 1007: 'backward-char (C-b)'
1.1 misho 1008: Move back a character.
1009:
1.1.1.2 ! misho 1010: 'forward-word (M-f)'
1.1 misho 1011: Move forward to the end of the next word. Words are composed of
1012: letters and digits.
1013:
1.1.1.2 ! misho 1014: 'backward-word (M-b)'
1.1 misho 1015: Move back to the start of the current or previous word. Words are
1016: composed of letters and digits.
1017:
1.1.1.2 ! misho 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
1.1 misho 1039: line at the top of the screen.
1040:
1.1.1.2 ! misho 1041: 'redraw-current-line ()'
1.1 misho 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:
1.1.1.2 ! misho 1050: 'accept-line (Newline or Return)'
1.1 misho 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
1.1.1.2 ! misho 1053: with 'add_history()'. If this line is a modified history line, the
! 1054: history line is restored to its original state.
1.1 misho 1055:
1.1.1.2 ! misho 1056: 'previous-history (C-p)'
! 1057: Move 'back' through the history list, fetching the previous
1.1 misho 1058: command.
1059:
1.1.1.2 ! misho 1060: 'next-history (C-n)'
! 1061: Move 'forward' through the history list, fetching the next command.
1.1 misho 1062:
1.1.1.2 ! misho 1063: 'beginning-of-history (M-<)'
1.1 misho 1064: Move to the first line in the history.
1065:
1.1.1.2 ! misho 1066: 'end-of-history (M->)'
1.1 misho 1067: Move to the end of the input history, i.e., the line currently
1068: being entered.
1069:
1.1.1.2 ! misho 1070: 'reverse-search-history (C-r)'
! 1071: Search backward starting at the current line and moving 'up'
1.1 misho 1072: through the history as necessary. This is an incremental search.
1.1.1.2 ! misho 1073: This command sets the region to the matched text and activates the
! 1074: mark.
1.1 misho 1075:
1.1.1.2 ! misho 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.
1.1 misho 1093:
1.1.1.2 ! misho 1094: 'history-search-forward ()'
1.1 misho 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:
1.1.1.2 ! misho 1100: 'history-search-backward ()'
1.1 misho 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:
1.1.1.2 ! misho 1106: 'history-substring-search-forward ()'
1.1 misho 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:
1.1.1.2 ! misho 1112: 'history-substring-search-backward ()'
1.1 misho 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:
1.1.1.2 ! misho 1118: 'yank-nth-arg (M-C-y)'
1.1 misho 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
1.1.1.2 ! misho 1124: argument N is computed, the argument is extracted as if the '!N'
1.1 misho 1125: history expansion had been specified.
1126:
1.1.1.2 ! misho 1127: 'yank-last-arg (M-. or M-_)'
1.1 misho 1128: Insert last argument to the previous command (the last word of the
1129: previous history entry). With a numeric argument, behave exactly
1.1.1.2 ! misho 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.
1.1 misho 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:
1.1.1.2 ! misho 1152: 'end-of-file (usually C-d)'
1.1 misho 1153: The character indicating end-of-file as set, for example, by
1.1.1.2 ! misho 1154: 'stty'. If this character is read when there are no characters on
1.1 misho 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:
1.1.1.2 ! misho 1158: 'delete-char (C-d)'
1.1 misho 1159: Delete the character at point. If this function is bound to the
1.1.1.2 ! misho 1160: same character as the tty EOF character, as 'C-d' commonly is, see
1.1 misho 1161: above for the effects.
1162:
1.1.1.2 ! misho 1163: 'backward-delete-char (Rubout)'
1.1 misho 1164: Delete the character behind the cursor. A numeric argument means
1165: to kill the characters instead of deleting them.
1166:
1.1.1.2 ! misho 1167: 'forward-backward-delete-char ()'
1.1 misho 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:
1.1.1.2 ! misho 1172: 'quoted-insert (C-q or C-v)'
1.1 misho 1173: Add the next character typed to the line verbatim. This is how to
1.1.1.2 ! misho 1174: insert key sequences like 'C-q', for example.
1.1 misho 1175:
1.1.1.2 ! misho 1176: 'tab-insert (M-<TAB>)'
1.1 misho 1177: Insert a tab character.
1178:
1.1.1.2 ! misho 1179: 'self-insert (a, b, A, 1, !, ...)'
1.1 misho 1180: Insert yourself.
1181:
1.1.1.2 ! misho 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)'
1.1 misho 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:
1.1.1.2 ! misho 1202: 'transpose-words (M-t)'
1.1 misho 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:
1.1.1.2 ! misho 1207: 'upcase-word (M-u)'
1.1 misho 1208: Uppercase the current (or following) word. With a negative
1209: argument, uppercase the previous word, but do not move the cursor.
1210:
1.1.1.2 ! misho 1211: 'downcase-word (M-l)'
1.1 misho 1212: Lowercase the current (or following) word. With a negative
1213: argument, lowercase the previous word, but do not move the cursor.
1214:
1.1.1.2 ! misho 1215: 'capitalize-word (M-c)'
1.1 misho 1216: Capitalize the current (or following) word. With a negative
1217: argument, capitalize the previous word, but do not move the cursor.
1218:
1.1.1.2 ! misho 1219: 'overwrite-mode ()'
1.1 misho 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
1.1.1.2 ! misho 1223: 'emacs' mode; 'vi' mode does overwrite differently. Each call to
! 1224: 'readline()' starts in insert mode.
1.1 misho 1225:
1.1.1.2 ! misho 1226: In overwrite mode, characters bound to 'self-insert' replace the
1.1 misho 1227: text at point rather than pushing the text to the right.
1.1.1.2 ! misho 1228: Characters bound to 'backward-delete-char' replace the character
1.1 misho 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:
1.1.1.2 ! misho 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.
1.1 misho 1243:
1.1.1.2 ! misho 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.
1.1 misho 1248:
1.1.1.2 ! misho 1249: 'unix-line-discard (C-u)'
1.1 misho 1250: Kill backward from the cursor to the beginning of the current line.
1251:
1.1.1.2 ! misho 1252: 'kill-whole-line ()'
1.1 misho 1253: Kill all characters on the current line, no matter where point is.
1254: By default, this is unbound.
1255:
1.1.1.2 ! misho 1256: 'kill-word (M-d)'
1.1 misho 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
1.1.1.2 ! misho 1259: as 'forward-word'.
1.1 misho 1260:
1.1.1.2 ! misho 1261: 'backward-kill-word (M-<DEL>)'
1.1 misho 1262: Kill the word behind point. Word boundaries are the same as
1.1.1.2 ! misho 1263: 'backward-word'.
1.1 misho 1264:
1.1.1.2 ! misho 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)'
1.1 misho 1273: Kill the word behind point, using white space as a word boundary.
1274: The killed text is saved on the kill-ring.
1275:
1.1.1.2 ! misho 1276: 'unix-filename-rubout ()'
1.1 misho 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:
1.1.1.2 ! misho 1281: 'delete-horizontal-space ()'
1.1 misho 1282: Delete all spaces and tabs around point. By default, this is
1283: unbound.
1284:
1.1.1.2 ! misho 1285: 'kill-region ()'
1.1 misho 1286: Kill the text in the current region. By default, this command is
1287: unbound.
1288:
1.1.1.2 ! misho 1289: 'copy-region-as-kill ()'
1.1 misho 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:
1.1.1.2 ! misho 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.
1.1 misho 1297:
1.1.1.2 ! misho 1298: 'copy-forward-word ()'
1.1 misho 1299: Copy the word following point to the kill buffer. The word
1.1.1.2 ! misho 1300: boundaries are the same as 'forward-word'. By default, this
1.1 misho 1301: command is unbound.
1302:
1.1.1.2 ! misho 1303: 'yank (C-y)'
1.1 misho 1304: Yank the top of the kill ring into the buffer at point.
1305:
1.1.1.2 ! misho 1306: 'yank-pop (M-y)'
1.1 misho 1307: Rotate the kill-ring, and yank the new top. You can only do this
1.1.1.2 ! misho 1308: if the prior command is 'yank' or 'yank-pop'.
1.1 misho 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:
1.1.1.2 ! misho 1316: 'digit-argument (M-0, M-1, ... M--)'
1.1 misho 1317: Add this digit to the argument already accumulating, or start a new
1.1.1.2 ! misho 1318: argument. 'M--' starts a negative argument.
1.1 misho 1319:
1.1.1.2 ! misho 1320: 'universal-argument ()'
1.1 misho 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
1.1.1.2 ! misho 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.
1.1 misho 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:
1.1.1.2 ! misho 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.
1.1 misho 1343:
1.1.1.2 ! misho 1344: 'possible-completions (M-?)'
1.1 misho 1345: List the possible completions of the text before point. When
1346: displaying completions, Readline sets the number of columns used
1.1.1.2 ! misho 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.
1.1 misho 1350:
1.1.1.2 ! misho 1351: 'insert-completions (M-*)'
1.1 misho 1352: Insert all completions of the text before point that would have
1.1.1.2 ! misho 1353: been generated by 'possible-completions'.
1.1 misho 1354:
1.1.1.2 ! misho 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
1.1 misho 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
1.1.1.2 ! misho 1361: 'bell-style') and the original text is restored. An argument of N
1.1 misho 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:
1.1.1.2 ! misho 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
1.1 misho 1370: negative argument.
1371:
1.1.1.2 ! misho 1372: 'delete-char-or-list ()'
1.1 misho 1373: Deletes the character under the cursor if not at the beginning or
1.1.1.2 ! misho 1374: end of the line (like 'delete-char'). If at the end of the line,
! 1375: behaves identically to 'possible-completions'. This command is
1.1 misho 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:
1.1.1.2 ! misho 1384: 'start-kbd-macro (C-x ()'
1.1 misho 1385: Begin saving the characters typed into the current keyboard macro.
1386:
1.1.1.2 ! misho 1387: 'end-kbd-macro (C-x ))'
1.1 misho 1388: Stop saving the characters typed into the current keyboard macro
1389: and save the definition.
1390:
1.1.1.2 ! misho 1391: 'call-last-kbd-macro (C-x e)'
1.1 misho 1392: Re-execute the last keyboard macro defined, by making the
1393: characters in the macro appear as if typed at the keyboard.
1394:
1.1.1.2 ! misho 1395: 'print-last-kbd-macro ()'
1.1 misho 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:
1.1.1.2 ! misho 1405: 're-read-init-file (C-x C-r)'
1.1 misho 1406: Read in the contents of the INPUTRC file, and incorporate any
1407: bindings or variable assignments found there.
1408:
1.1.1.2 ! misho 1409: 'abort (C-g)'
1.1 misho 1410: Abort the current editing command and ring the terminal's bell
1.1.1.2 ! misho 1411: (subject to the setting of 'bell-style').
1.1 misho 1412:
1.1.1.2 ! misho 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.
1.1 misho 1417:
1.1.1.2 ! misho 1418: 'prefix-meta (<ESC>)'
1.1 misho 1419: Metafy the next character typed. This is for keyboards without a
1.1.1.2 ! misho 1420: meta key. Typing '<ESC> f' is equivalent to typing 'M-f'.
1.1 misho 1421:
1.1.1.2 ! misho 1422: 'undo (C-_ or C-x C-u)'
1.1 misho 1423: Incremental undo, separately remembered for each line.
1424:
1.1.1.2 ! misho 1425: 'revert-line (M-r)'
1.1 misho 1426: Undo all changes made to this line. This is like executing the
1.1.1.2 ! misho 1427: 'undo' command enough times to get back to the beginning.
1.1 misho 1428:
1.1.1.2 ! misho 1429: 'tilde-expand (M-~)'
1.1 misho 1430: Perform tilde expansion on the current word.
1431:
1.1.1.2 ! misho 1432: 'set-mark (C-@)'
1.1 misho 1433: Set the mark to the point. If a numeric argument is supplied, the
1434: mark is set to that position.
1435:
1.1.1.2 ! misho 1436: 'exchange-point-and-mark (C-x C-x)'
1.1 misho 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:
1.1.1.2 ! misho 1441: 'character-search (C-])'
1.1 misho 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:
1.1.1.2 ! misho 1446: 'character-search-backward (M-C-])'
1.1 misho 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:
1.1.1.2 ! misho 1451: 'skip-csi-sequence ()'
1.1 misho 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
1.1.1.2 ! misho 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-[.
1.1 misho 1459:
1.1.1.2 ! misho 1460: 'insert-comment (M-#)'
! 1461: Without a numeric argument, the value of the 'comment-begin'
1.1 misho 1462: variable is inserted at the beginning of the current line. If a
1.1.1.2 ! misho 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.
1.1 misho 1468:
1.1.1.2 ! misho 1469: 'dump-functions ()'
1.1 misho 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:
1.1.1.2 ! misho 1475: 'dump-variables ()'
1.1 misho 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:
1.1.1.2 ! misho 1481: 'dump-macros ()'
1.1 misho 1482: Print all of the Readline key sequences bound to macros and the
1.1.1.2 ! misho 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.
1.1 misho 1486:
1.1.1.2 ! misho 1487: 'emacs-editing-mode (C-e)'
! 1488: When in 'vi' command mode, this causes a switch to 'emacs' editing
1.1 misho 1489: mode.
1490:
1.1.1.2 ! misho 1491: 'vi-editing-mode (M-C-j)'
! 1492: When in 'emacs' editing mode, this causes a switch to 'vi' editing
1.1 misho 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:
1.1.1.2 ! misho 1501: While the Readline library does not have a full set of 'vi' editing
1.1 misho 1502: functions, it does contain enough to allow simple editing of the line.
1.1.1.2 ! misho 1503: The Readline 'vi' mode behaves as specified in the POSIX standard.
1.1 misho 1504:
1.1.1.2 ! misho 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.
1.1 misho 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.
1.1.1.2 ! misho 1525: <http://fsf.org/>
1.1 misho 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
1.1.1.2 ! misho 1550: of subject matter or whether it is published as a printed book. We
! 1551: recommend this License principally for works whose purpose is
1.1 misho 1552: instruction or reference.
1553:
1554: 1. APPLICABILITY AND DEFINITIONS
1555:
1556: This License applies to any manual or other work, in any medium,
1.1.1.2 ! misho 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
1.1 misho 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
1.1.1.2 ! misho 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.
1.1 misho 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
1.1.1.2 ! misho 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.
1.1 misho 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
1.1.1.2 ! misho 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".
1.1 misho 1608:
1609: Examples of suitable formats for Transparent copies include plain
1610: ASCII without markup, Texinfo input format, LaTeX input format,
1.1.1.2 ! misho 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.
1.1 misho 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
1.1.1.2 ! misho 1656: distribute a large enough number of copies you must also follow the
! 1657: conditions in section 3.
1.1 misho 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
1.1.1.2 ! misho 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.
1.1 misho 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
1.1.1.2 ! misho 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.
1.1 misho 1694:
1695: It is requested, but not required, that you contact the authors of
1.1.1.2 ! misho 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.
1.1 misho 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
1.1.1.2 ! misho 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:
1.1 misho 1709:
1710: A. Use in the Title Page (and on the covers, if any) a title
1.1.1.2 ! misho 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.
1.1 misho 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
1.1.1.2 ! misho 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.
1.1 misho 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
1.1.1.2 ! misho 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.
1.1 misho 1760:
1761: K. For any section Entitled "Acknowledgements" or "Dedications",
1.1.1.2 ! misho 1762: Preserve the Title of the section, and preserve in the section
! 1763: all the substance and tone of each of the contributor
1.1 misho 1764: acknowledgements and/or dedications given therein.
1765:
1.1.1.2 ! misho 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.
1.1 misho 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
1.1.1.2 ! misho 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.
1.1 misho 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,
1.1.1.2 ! misho 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.
1.1 misho 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
1.1.1.2 ! misho 1812: modified versions, provided that you include in the combination all
! 1813: of the Invariant Sections of all of the original documents,
1.1 misho 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
1.1.1.2 ! misho 1840: rules of this License for verbatim copying of each of the documents
! 1841: in all other respects.
1.1 misho 1842:
1843: You may extract a single document from such a collection, and
1844: distribute it individually under this License, provided you insert
1.1.1.2 ! misho 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.
1.1 misho 1848:
1849: 7. AGGREGATION WITH INDEPENDENT WORKS
1850:
1851: A compilation of the Document or its derivatives with other
1.1.1.2 ! misho 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
1.1 misho 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)
1.1.1.2 ! misho 1898: provisionally, unless and until the copyright holder explicitly and
! 1899: finally terminates your license, and (b) permanently, if the
1.1 misho 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
1.1.1.2 ! misho 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.
1.1 misho 1915:
1.1.1.2 ! misho 1916: 10. FUTURE REVISIONS OF THIS LICENSE
1.1 misho 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
1.1.1.2 ! misho 1922: <http://www.gnu.org/copyleft/>.
1.1 misho 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
1.1.1.2 ! misho 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
1.1 misho 1934: proxy's public statement of acceptance of a version permanently
1935: authorizes you to choose that version for the Document.
1936:
1.1.1.2 ! misho 1937: 11. RELICENSING
1.1 misho 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
1.1.1.2 ! misho 1983: Texts, replace the "with...Texts." line with this:
1.1 misho 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
1.1.1.2 ! misho 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.
1.1 misho 1997:
1998:
1999:
2000: Tag Table:
1.1.1.2 ! misho 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
1.1 misho 2025:
2026: End Tag Table
1.1.1.2 ! misho 2027:
! 2028:
! 2029: Local Variables:
! 2030: coding: utf-8
! 2031: End:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>