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