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