jpayne@68: This is rluserman.info, produced by makeinfo version 6.8 from jpayne@68: rluserman.texi. jpayne@68: jpayne@68: This manual describes the end user interface of the GNU Readline Library jpayne@68: (version 8.2, 19 September 2022), a library which aids in the jpayne@68: consistency of user interface across discrete programs which provide a jpayne@68: command line interface. jpayne@68: jpayne@68: Copyright (C) 1988-2022 Free Software Foundation, Inc. jpayne@68: jpayne@68: Permission is granted to copy, distribute and/or modify this jpayne@68: document under the terms of the GNU Free Documentation License, jpayne@68: Version 1.3 or any later version published by the Free Software jpayne@68: Foundation; with no Invariant Sections, no Front-Cover Texts, and jpayne@68: no Back-Cover Texts. A copy of the license is included in the jpayne@68: section entitled "GNU Free Documentation License". jpayne@68: jpayne@68: INFO-DIR-SECTION Libraries jpayne@68: START-INFO-DIR-ENTRY jpayne@68: * RLuserman: (rluserman). The GNU readline library User's Manual. jpayne@68: END-INFO-DIR-ENTRY jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Top, Next: Command Line Editing, Up: (dir) jpayne@68: jpayne@68: GNU Readline Library jpayne@68: ******************** jpayne@68: jpayne@68: This document describes the end user interface of the GNU Readline jpayne@68: Library, a utility which aids in the consistency of user interface jpayne@68: across discrete programs which provide a command line interface. The jpayne@68: Readline home page is . jpayne@68: jpayne@68: * Menu: jpayne@68: jpayne@68: * Command Line Editing:: GNU Readline User's Manual. jpayne@68: * GNU Free Documentation License:: License for copying this manual. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Command Line Editing, Next: GNU Free Documentation License, Prev: Top, Up: Top jpayne@68: jpayne@68: 1 Command Line Editing jpayne@68: ********************** jpayne@68: jpayne@68: This chapter describes the basic features of the GNU command line jpayne@68: editing interface. jpayne@68: jpayne@68: * Menu: jpayne@68: jpayne@68: * Introduction and Notation:: Notation used in this text. jpayne@68: * Readline Interaction:: The minimum set of commands for editing a line. jpayne@68: * Readline Init File:: Customizing Readline from a user's view. jpayne@68: * Bindable Readline Commands:: A description of most of the Readline commands jpayne@68: available for binding jpayne@68: * Readline vi Mode:: A short description of how to make Readline jpayne@68: behave like the vi editor. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Introduction and Notation, Next: Readline Interaction, Up: Command Line Editing jpayne@68: jpayne@68: 1.1 Introduction to Line Editing jpayne@68: ================================ jpayne@68: jpayne@68: The following paragraphs describe the notation used to represent jpayne@68: keystrokes. jpayne@68: jpayne@68: The text 'C-k' is read as 'Control-K' and describes the character jpayne@68: produced when the key is pressed while the Control key is depressed. jpayne@68: jpayne@68: The text 'M-k' is read as 'Meta-K' and describes the character jpayne@68: produced when the Meta key (if you have one) is depressed, and the jpayne@68: key is pressed. The Meta key is labeled on many keyboards. On jpayne@68: keyboards with two keys labeled (usually to either side of the jpayne@68: space bar), the on the left side is generally set to work as a jpayne@68: Meta key. The key on the right may also be configured to work as jpayne@68: a Meta key or may be configured as some other modifier, such as a jpayne@68: Compose key for typing accented characters. jpayne@68: jpayne@68: If you do not have a Meta or key, or another key working as a jpayne@68: Meta key, the identical keystroke can be generated by typing jpayne@68: _first_, and then typing . Either process is known as "metafying" jpayne@68: the key. jpayne@68: jpayne@68: The text 'M-C-k' is read as 'Meta-Control-k' and describes the jpayne@68: character produced by "metafying" 'C-k'. jpayne@68: jpayne@68: In addition, several keys have their own names. Specifically, , jpayne@68: , , , , and all stand for themselves when seen jpayne@68: in this text, or in an init file (*note Readline Init File::). If your jpayne@68: keyboard lacks a key, typing will produce the desired jpayne@68: character. The key may be labeled or on some jpayne@68: keyboards. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Readline Interaction, Next: Readline Init File, Prev: Introduction and Notation, Up: Command Line Editing jpayne@68: jpayne@68: 1.2 Readline Interaction jpayne@68: ======================== jpayne@68: jpayne@68: Often during an interactive session you type in a long line of text, jpayne@68: only to notice that the first word on the line is misspelled. The jpayne@68: Readline library gives you a set of commands for manipulating the text jpayne@68: as you type it in, allowing you to just fix your typo, and not forcing jpayne@68: you to retype the majority of the line. Using these editing commands, jpayne@68: you move the cursor to the place that needs correction, and delete or jpayne@68: insert the text of the corrections. Then, when you are satisfied with jpayne@68: the line, you simply press . You do not have to be at the end of jpayne@68: the line to press ; the entire line is accepted regardless of the jpayne@68: location of the cursor within the line. jpayne@68: jpayne@68: * Menu: jpayne@68: jpayne@68: * Readline Bare Essentials:: The least you need to know about Readline. jpayne@68: * Readline Movement Commands:: Moving about the input line. jpayne@68: * Readline Killing Commands:: How to delete text, and how to get it back! jpayne@68: * Readline Arguments:: Giving numeric arguments to commands. jpayne@68: * Searching:: Searching through previous lines. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Readline Bare Essentials, Next: Readline Movement Commands, Up: Readline Interaction jpayne@68: jpayne@68: 1.2.1 Readline Bare Essentials jpayne@68: ------------------------------ jpayne@68: jpayne@68: In order to enter characters into the line, simply type them. The typed jpayne@68: character appears where the cursor was, and then the cursor moves one jpayne@68: space to the right. If you mistype a character, you can use your erase jpayne@68: character to back up and delete the mistyped character. jpayne@68: jpayne@68: Sometimes you may mistype a character, and not notice the error until jpayne@68: you have typed several other characters. In that case, you can type jpayne@68: 'C-b' to move the cursor to the left, and then correct your mistake. jpayne@68: Afterwards, you can move the cursor to the right with 'C-f'. jpayne@68: jpayne@68: When you add text in the middle of a line, you will notice that jpayne@68: characters to the right of the cursor are 'pushed over' to make room for jpayne@68: the text that you have inserted. Likewise, when you delete text behind jpayne@68: the cursor, characters to the right of the cursor are 'pulled back' to jpayne@68: fill in the blank space created by the removal of the text. A list of jpayne@68: the bare essentials for editing the text of an input line follows. jpayne@68: jpayne@68: 'C-b' jpayne@68: Move back one character. jpayne@68: 'C-f' jpayne@68: Move forward one character. jpayne@68: or jpayne@68: Delete the character to the left of the cursor. jpayne@68: 'C-d' jpayne@68: Delete the character underneath the cursor. jpayne@68: Printing characters jpayne@68: Insert the character into the line at the cursor. jpayne@68: 'C-_' or 'C-x C-u' jpayne@68: Undo the last editing command. You can undo all the way back to an jpayne@68: empty line. jpayne@68: jpayne@68: (Depending on your configuration, the key might be set to jpayne@68: delete the character to the left of the cursor and the key set to jpayne@68: delete the character underneath the cursor, like 'C-d', rather than the jpayne@68: character to the left of the cursor.) jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Readline Movement Commands, Next: Readline Killing Commands, Prev: Readline Bare Essentials, Up: Readline Interaction jpayne@68: jpayne@68: 1.2.2 Readline Movement Commands jpayne@68: -------------------------------- jpayne@68: jpayne@68: The above table describes the most basic keystrokes that you need in jpayne@68: order to do editing of the input line. For your convenience, many other jpayne@68: commands have been added in addition to 'C-b', 'C-f', 'C-d', and . jpayne@68: Here are some commands for moving more rapidly about the line. jpayne@68: jpayne@68: 'C-a' jpayne@68: Move to the start of the line. jpayne@68: 'C-e' jpayne@68: Move to the end of the line. jpayne@68: 'M-f' jpayne@68: Move forward a word, where a word is composed of letters and jpayne@68: digits. jpayne@68: 'M-b' jpayne@68: Move backward a word. jpayne@68: 'C-l' jpayne@68: Clear the screen, reprinting the current line at the top. jpayne@68: jpayne@68: Notice how 'C-f' moves forward a character, while 'M-f' moves forward jpayne@68: a word. It is a loose convention that control keystrokes operate on jpayne@68: characters while meta keystrokes operate on words. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Readline Killing Commands, Next: Readline Arguments, Prev: Readline Movement Commands, Up: Readline Interaction jpayne@68: jpayne@68: 1.2.3 Readline Killing Commands jpayne@68: ------------------------------- jpayne@68: jpayne@68: "Killing" text means to delete the text from the line, but to save it jpayne@68: away for later use, usually by "yanking" (re-inserting) it back into the jpayne@68: line. ('Cut' and 'paste' are more recent jargon for 'kill' and 'yank'.) jpayne@68: jpayne@68: If the description for a command says that it 'kills' text, then you jpayne@68: can be sure that you can get the text back in a different (or the same) jpayne@68: place later. jpayne@68: jpayne@68: When you use a kill command, the text is saved in a "kill-ring". Any jpayne@68: number of consecutive kills save all of the killed text together, so jpayne@68: that when you yank it back, you get it all. The kill ring is not line jpayne@68: specific; the text that you killed on a previously typed line is jpayne@68: available to be yanked back later, when you are typing another line. jpayne@68: jpayne@68: Here is the list of commands for killing text. jpayne@68: jpayne@68: 'C-k' jpayne@68: Kill the text from the current cursor position to the end of the jpayne@68: line. jpayne@68: jpayne@68: 'M-d' jpayne@68: Kill from the cursor to the end of the current word, or, if between jpayne@68: words, to the end of the next word. Word boundaries are the same jpayne@68: as those used by 'M-f'. jpayne@68: jpayne@68: 'M-' jpayne@68: Kill from the cursor to the start of the current word, or, if jpayne@68: between words, to the start of the previous word. Word boundaries jpayne@68: are the same as those used by 'M-b'. jpayne@68: jpayne@68: 'C-w' jpayne@68: Kill from the cursor to the previous whitespace. This is different jpayne@68: than 'M-' because the word boundaries differ. jpayne@68: jpayne@68: Here is how to "yank" the text back into the line. Yanking means to jpayne@68: copy the most-recently-killed text from the kill buffer. jpayne@68: jpayne@68: 'C-y' jpayne@68: Yank the most recently killed text back into the buffer at the jpayne@68: cursor. jpayne@68: jpayne@68: 'M-y' jpayne@68: Rotate the kill-ring, and yank the new top. You can only do this jpayne@68: if the prior command is 'C-y' or 'M-y'. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Readline Arguments, Next: Searching, Prev: Readline Killing Commands, Up: Readline Interaction jpayne@68: jpayne@68: 1.2.4 Readline Arguments jpayne@68: ------------------------ jpayne@68: jpayne@68: You can pass numeric arguments to Readline commands. Sometimes the jpayne@68: argument acts as a repeat count, other times it is the sign of the jpayne@68: argument that is significant. If you pass a negative argument to a jpayne@68: command which normally acts in a forward direction, that command will jpayne@68: act in a backward direction. For example, to kill text back to the jpayne@68: start of the line, you might type 'M-- C-k'. jpayne@68: jpayne@68: The general way to pass numeric arguments to a command is to type jpayne@68: meta digits before the command. If the first 'digit' typed is a minus jpayne@68: sign ('-'), then the sign of the argument will be negative. Once you jpayne@68: have typed one meta digit to get the argument started, you can type the jpayne@68: remainder of the digits, and then the command. For example, to give the jpayne@68: 'C-d' command an argument of 10, you could type 'M-1 0 C-d', which will jpayne@68: delete the next ten characters on the input line. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Searching, Prev: Readline Arguments, Up: Readline Interaction jpayne@68: jpayne@68: 1.2.5 Searching for Commands in the History jpayne@68: ------------------------------------------- jpayne@68: jpayne@68: Readline provides commands for searching through the command history for jpayne@68: lines containing a specified string. There are two search modes: jpayne@68: "incremental" and "non-incremental". jpayne@68: jpayne@68: Incremental searches begin before the user has finished typing the jpayne@68: search string. As each character of the search string is typed, jpayne@68: Readline displays the next entry from the history matching the string jpayne@68: typed so far. An incremental search requires only as many characters as jpayne@68: needed to find the desired history entry. To search backward in the jpayne@68: history for a particular string, type 'C-r'. Typing 'C-s' searches jpayne@68: forward through the history. The characters present in the value of the jpayne@68: 'isearch-terminators' variable are used to terminate an incremental jpayne@68: search. If that variable has not been assigned a value, the and jpayne@68: 'C-J' characters will terminate an incremental search. 'C-g' will abort jpayne@68: an incremental search and restore the original line. When the search is jpayne@68: terminated, the history entry containing the search string becomes the jpayne@68: current line. jpayne@68: jpayne@68: To find other matching entries in the history list, type 'C-r' or jpayne@68: 'C-s' as appropriate. This will search backward or forward in the jpayne@68: history for the next entry matching the search string typed so far. Any jpayne@68: other key sequence bound to a Readline command will terminate the search jpayne@68: and execute that command. For instance, a will terminate the jpayne@68: search and accept the line, thereby executing the command from the jpayne@68: history list. A movement command will terminate the search, make the jpayne@68: last line found the current line, and begin editing. jpayne@68: jpayne@68: Readline remembers the last incremental search string. If two 'C-r's jpayne@68: are typed without any intervening characters defining a new search jpayne@68: string, any remembered search string is used. jpayne@68: jpayne@68: Non-incremental searches read the entire search string before jpayne@68: starting to search for matching history lines. The search string may be jpayne@68: typed by the user or be part of the contents of the current line. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Readline Init File, Next: Bindable Readline Commands, Prev: Readline Interaction, Up: Command Line Editing jpayne@68: jpayne@68: 1.3 Readline Init File jpayne@68: ====================== jpayne@68: jpayne@68: Although the Readline library comes with a set of Emacs-like keybindings jpayne@68: installed by default, it is possible to use a different set of jpayne@68: keybindings. Any user can customize programs that use Readline by jpayne@68: putting commands in an "inputrc" file, conventionally in their home jpayne@68: directory. The name of this file is taken from the value of the jpayne@68: environment variable 'INPUTRC'. If that variable is unset, the default jpayne@68: is '~/.inputrc'. If that file does not exist or cannot be read, the jpayne@68: ultimate default is '/etc/inputrc'. jpayne@68: jpayne@68: When a program which uses the Readline library starts up, the init jpayne@68: file is read, and the key bindings are set. jpayne@68: jpayne@68: In addition, the 'C-x C-r' command re-reads this init file, thus jpayne@68: incorporating any changes that you might have made to it. jpayne@68: jpayne@68: * Menu: jpayne@68: jpayne@68: * Readline Init File Syntax:: Syntax for the commands in the inputrc file. jpayne@68: jpayne@68: * Conditional Init Constructs:: Conditional key bindings in the inputrc file. jpayne@68: jpayne@68: * Sample Init File:: An example inputrc file. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Readline Init File Syntax, Next: Conditional Init Constructs, Up: Readline Init File jpayne@68: jpayne@68: 1.3.1 Readline Init File Syntax jpayne@68: ------------------------------- jpayne@68: jpayne@68: There are only a few basic constructs allowed in the Readline init file. jpayne@68: Blank lines are ignored. Lines beginning with a '#' are comments. jpayne@68: Lines beginning with a '$' indicate conditional constructs (*note jpayne@68: Conditional Init Constructs::). Other lines denote variable settings jpayne@68: and key bindings. jpayne@68: jpayne@68: Variable Settings jpayne@68: You can modify the run-time behavior of Readline by altering the jpayne@68: values of variables in Readline using the 'set' command within the jpayne@68: init file. The syntax is simple: jpayne@68: jpayne@68: set VARIABLE VALUE jpayne@68: jpayne@68: Here, for example, is how to change from the default Emacs-like key jpayne@68: binding to use 'vi' line editing commands: jpayne@68: jpayne@68: set editing-mode vi jpayne@68: jpayne@68: Variable names and values, where appropriate, are recognized jpayne@68: without regard to case. Unrecognized variable names are ignored. jpayne@68: jpayne@68: Boolean variables (those that can be set to on or off) are set to jpayne@68: on if the value is null or empty, ON (case-insensitive), or 1. Any jpayne@68: other value results in the variable being set to off. jpayne@68: jpayne@68: A great deal of run-time behavior is changeable with the following jpayne@68: variables. jpayne@68: jpayne@68: 'active-region-start-color' jpayne@68: A string variable that controls the text color and background jpayne@68: when displaying the text in the active region (see the jpayne@68: description of 'enable-active-region' below). This string jpayne@68: must not take up any physical character positions on the jpayne@68: display, so it should consist only of terminal escape jpayne@68: sequences. It is output to the terminal before displaying the jpayne@68: text in the active region. This variable is reset to the jpayne@68: default value whenever the terminal type changes. The default jpayne@68: value is the string that puts the terminal in standout mode, jpayne@68: as obtained from the terminal's terminfo description. A jpayne@68: sample value might be '\e[01;33m'. jpayne@68: jpayne@68: 'active-region-end-color' jpayne@68: A string variable that "undoes" the effects of jpayne@68: 'active-region-start-color' and restores "normal" terminal jpayne@68: display appearance after displaying text in the active region. jpayne@68: This string must not take up any physical character positions jpayne@68: on the display, so it should consist only of terminal escape jpayne@68: sequences. It is output to the terminal after displaying the jpayne@68: text in the active region. This variable is reset to the jpayne@68: default value whenever the terminal type changes. The default jpayne@68: value is the string that restores the terminal from standout jpayne@68: mode, as obtained from the terminal's terminfo description. A jpayne@68: sample value might be '\e[0m'. jpayne@68: jpayne@68: 'bell-style' jpayne@68: Controls what happens when Readline wants to ring the terminal jpayne@68: bell. If set to 'none', Readline never rings the bell. If jpayne@68: set to 'visible', Readline uses a visible bell if one is jpayne@68: available. If set to 'audible' (the default), Readline jpayne@68: attempts to ring the terminal's bell. jpayne@68: jpayne@68: 'bind-tty-special-chars' jpayne@68: If set to 'on' (the default), Readline attempts to bind the jpayne@68: control characters treated specially by the kernel's terminal jpayne@68: driver to their Readline equivalents. jpayne@68: jpayne@68: 'blink-matching-paren' jpayne@68: If set to 'on', Readline attempts to briefly move the cursor jpayne@68: to an opening parenthesis when a closing parenthesis is jpayne@68: inserted. The default is 'off'. jpayne@68: jpayne@68: 'colored-completion-prefix' jpayne@68: If set to 'on', when listing completions, Readline displays jpayne@68: the common prefix of the set of possible completions using a jpayne@68: different color. The color definitions are taken from the jpayne@68: value of the 'LS_COLORS' environment variable. If there is a jpayne@68: color definition in 'LS_COLORS' for the custom suffix jpayne@68: 'readline-colored-completion-prefix', Readline uses this color jpayne@68: for the common prefix instead of its default. The default is jpayne@68: 'off'. jpayne@68: jpayne@68: 'colored-stats' jpayne@68: If set to 'on', Readline displays possible completions using jpayne@68: different colors to indicate their file type. The color jpayne@68: definitions are taken from the value of the 'LS_COLORS' jpayne@68: environment variable. The default is 'off'. jpayne@68: jpayne@68: 'comment-begin' jpayne@68: The string to insert at the beginning of the line when the jpayne@68: 'insert-comment' command is executed. The default value is jpayne@68: '"#"'. jpayne@68: jpayne@68: 'completion-display-width' jpayne@68: The number of screen columns used to display possible matches jpayne@68: when performing completion. The value is ignored if it is jpayne@68: less than 0 or greater than the terminal screen width. A jpayne@68: value of 0 will cause matches to be displayed one per line. jpayne@68: The default value is -1. jpayne@68: jpayne@68: 'completion-ignore-case' jpayne@68: If set to 'on', Readline performs filename matching and jpayne@68: completion in a case-insensitive fashion. The default value jpayne@68: is 'off'. jpayne@68: jpayne@68: 'completion-map-case' jpayne@68: If set to 'on', and COMPLETION-IGNORE-CASE is enabled, jpayne@68: Readline treats hyphens ('-') and underscores ('_') as jpayne@68: equivalent when performing case-insensitive filename matching jpayne@68: and completion. The default value is 'off'. jpayne@68: jpayne@68: 'completion-prefix-display-length' jpayne@68: The length in characters of the common prefix of a list of jpayne@68: possible completions that is displayed without modification. jpayne@68: When set to a value greater than zero, common prefixes longer jpayne@68: than this value are replaced with an ellipsis when displaying jpayne@68: possible completions. jpayne@68: jpayne@68: 'completion-query-items' jpayne@68: The number of possible completions that determines when the jpayne@68: user is asked whether the list of possibilities should be jpayne@68: displayed. If the number of possible completions is greater jpayne@68: than or equal to this value, Readline will ask whether or not jpayne@68: the user wishes to view them; otherwise, they are simply jpayne@68: listed. This variable must be set to an integer value greater jpayne@68: than or equal to zero. A zero value means Readline should jpayne@68: never ask; negative values are treated as zero. The default jpayne@68: limit is '100'. jpayne@68: jpayne@68: 'convert-meta' jpayne@68: If set to 'on', Readline will convert characters with the jpayne@68: eighth bit set to an ASCII key sequence by stripping the jpayne@68: eighth bit and prefixing an character, converting them jpayne@68: to a meta-prefixed key sequence. The default value is 'on', jpayne@68: but will be set to 'off' if the locale is one that contains jpayne@68: eight-bit characters. This variable is dependent on the jpayne@68: 'LC_CTYPE' locale category, and may change if the locale is jpayne@68: changed. jpayne@68: jpayne@68: 'disable-completion' jpayne@68: If set to 'On', Readline will inhibit word completion. jpayne@68: Completion characters will be inserted into the line as if jpayne@68: they had been mapped to 'self-insert'. The default is 'off'. jpayne@68: jpayne@68: 'echo-control-characters' jpayne@68: When set to 'on', on operating systems that indicate they jpayne@68: support it, Readline echoes a character corresponding to a jpayne@68: signal generated from the keyboard. The default is 'on'. jpayne@68: jpayne@68: 'editing-mode' jpayne@68: The 'editing-mode' variable controls which default set of key jpayne@68: bindings is used. By default, Readline starts up in Emacs jpayne@68: editing mode, where the keystrokes are most similar to Emacs. jpayne@68: This variable can be set to either 'emacs' or 'vi'. jpayne@68: jpayne@68: 'emacs-mode-string' jpayne@68: If the SHOW-MODE-IN-PROMPT variable is enabled, this string is jpayne@68: displayed immediately before the last line of the primary jpayne@68: prompt when emacs editing mode is active. The value is jpayne@68: expanded like a key binding, so the standard set of meta- and jpayne@68: control prefixes and backslash escape sequences is available. jpayne@68: Use the '\1' and '\2' escapes to begin and end sequences of jpayne@68: non-printing characters, which can be used to embed a terminal jpayne@68: control sequence into the mode string. The default is '@'. jpayne@68: jpayne@68: 'enable-active-region' jpayne@68: The "point" is the current cursor position, and "mark" refers jpayne@68: to a saved cursor position (*note Commands For Moving::). The jpayne@68: text between the point and mark is referred to as the jpayne@68: "region". When this variable is set to 'On', Readline allows jpayne@68: certain commands to designate the region as "active". When jpayne@68: the region is active, Readline highlights the text in the jpayne@68: region using the value of the 'active-region-start-color', jpayne@68: which defaults to the string that enables the terminal's jpayne@68: standout mode. The active region shows the text inserted by jpayne@68: bracketed-paste and any matching text found by incremental and jpayne@68: non-incremental history searches. The default is 'On'. jpayne@68: jpayne@68: 'enable-bracketed-paste' jpayne@68: When set to 'On', Readline configures the terminal to insert jpayne@68: each paste into the editing buffer as a single string of jpayne@68: characters, instead of treating each character as if it had jpayne@68: been read from the keyboard. This is called putting the jpayne@68: terminal into "bracketed paste mode"; it prevents Readline jpayne@68: from executing any editing commands bound to key sequences jpayne@68: appearing in the pasted text. The default is 'On'. jpayne@68: jpayne@68: 'enable-keypad' jpayne@68: When set to 'on', Readline will try to enable the application jpayne@68: keypad when it is called. Some systems need this to enable jpayne@68: the arrow keys. The default is 'off'. jpayne@68: jpayne@68: 'enable-meta-key' jpayne@68: When set to 'on', Readline will try to enable any meta jpayne@68: modifier key the terminal claims to support when it is called. jpayne@68: On many terminals, the meta key is used to send eight-bit jpayne@68: characters. The default is 'on'. jpayne@68: jpayne@68: 'expand-tilde' jpayne@68: If set to 'on', tilde expansion is performed when Readline jpayne@68: attempts word completion. The default is 'off'. jpayne@68: jpayne@68: 'history-preserve-point' jpayne@68: If set to 'on', the history code attempts to place the point jpayne@68: (the current cursor position) at the same location on each jpayne@68: history line retrieved with 'previous-history' or jpayne@68: 'next-history'. The default is 'off'. jpayne@68: jpayne@68: 'history-size' jpayne@68: Set the maximum number of history entries saved in the history jpayne@68: list. If set to zero, any existing history entries are jpayne@68: deleted and no new entries are saved. If set to a value less jpayne@68: than zero, the number of history entries is not limited. By jpayne@68: default, the number of history entries is not limited. If an jpayne@68: attempt is made to set HISTORY-SIZE to a non-numeric value, jpayne@68: the maximum number of history entries will be set to 500. jpayne@68: jpayne@68: 'horizontal-scroll-mode' jpayne@68: This variable can be set to either 'on' or 'off'. Setting it jpayne@68: to 'on' means that the text of the lines being edited will jpayne@68: scroll horizontally on a single screen line when they are jpayne@68: longer than the width of the screen, instead of wrapping onto jpayne@68: a new screen line. This variable is automatically set to 'on' jpayne@68: for terminals of height 1. By default, this variable is set jpayne@68: to 'off'. jpayne@68: jpayne@68: 'input-meta' jpayne@68: If set to 'on', Readline will enable eight-bit input (it will jpayne@68: not clear the eighth bit in the characters it reads), jpayne@68: regardless of what the terminal claims it can support. The jpayne@68: default value is 'off', but Readline will set it to 'on' if jpayne@68: the locale contains eight-bit characters. The name jpayne@68: 'meta-flag' is a synonym for this variable. This variable is jpayne@68: dependent on the 'LC_CTYPE' locale category, and may change if jpayne@68: the locale is changed. jpayne@68: jpayne@68: 'isearch-terminators' jpayne@68: The string of characters that should terminate an incremental jpayne@68: search without subsequently executing the character as a jpayne@68: command (*note Searching::). If this variable has not been jpayne@68: given a value, the characters and 'C-J' will terminate jpayne@68: an incremental search. jpayne@68: jpayne@68: 'keymap' jpayne@68: Sets Readline's idea of the current keymap for key binding jpayne@68: commands. Built-in 'keymap' names are 'emacs', jpayne@68: 'emacs-standard', 'emacs-meta', 'emacs-ctlx', 'vi', 'vi-move', jpayne@68: 'vi-command', and 'vi-insert'. 'vi' is equivalent to jpayne@68: 'vi-command' ('vi-move' is also a synonym); 'emacs' is jpayne@68: equivalent to 'emacs-standard'. Applications may add jpayne@68: additional names. The default value is 'emacs'. The value of jpayne@68: the 'editing-mode' variable also affects the default keymap. jpayne@68: jpayne@68: 'keyseq-timeout' jpayne@68: Specifies the duration Readline will wait for a character when jpayne@68: reading an ambiguous key sequence (one that can form a jpayne@68: complete key sequence using the input read so far, or can take jpayne@68: additional input to complete a longer key sequence). If no jpayne@68: input is received within the timeout, Readline will use the jpayne@68: shorter but complete key sequence. Readline uses this value jpayne@68: to determine whether or not input is available on the current jpayne@68: input source ('rl_instream' by default). The value is jpayne@68: specified in milliseconds, so a value of 1000 means that jpayne@68: Readline will wait one second for additional input. If this jpayne@68: variable is set to a value less than or equal to zero, or to a jpayne@68: non-numeric value, Readline will wait until another key is jpayne@68: pressed to decide which key sequence to complete. The default jpayne@68: value is '500'. jpayne@68: jpayne@68: 'mark-directories' jpayne@68: If set to 'on', completed directory names have a slash jpayne@68: appended. The default is 'on'. jpayne@68: jpayne@68: 'mark-modified-lines' jpayne@68: This variable, when set to 'on', causes Readline to display an jpayne@68: asterisk ('*') at the start of history lines which have been jpayne@68: modified. This variable is 'off' by default. jpayne@68: jpayne@68: 'mark-symlinked-directories' jpayne@68: If set to 'on', completed names which are symbolic links to jpayne@68: directories have a slash appended (subject to the value of jpayne@68: 'mark-directories'). The default is 'off'. jpayne@68: jpayne@68: 'match-hidden-files' jpayne@68: This variable, when set to 'on', causes Readline to match jpayne@68: files whose names begin with a '.' (hidden files) when jpayne@68: performing filename completion. If set to 'off', the leading jpayne@68: '.' must be supplied by the user in the filename to be jpayne@68: completed. This variable is 'on' by default. jpayne@68: jpayne@68: 'menu-complete-display-prefix' jpayne@68: If set to 'on', menu completion displays the common prefix of jpayne@68: the list of possible completions (which may be empty) before jpayne@68: cycling through the list. The default is 'off'. jpayne@68: jpayne@68: 'output-meta' jpayne@68: If set to 'on', Readline will display characters with the jpayne@68: eighth bit set directly rather than as a meta-prefixed escape jpayne@68: sequence. The default is 'off', but Readline will set it to jpayne@68: 'on' if the locale contains eight-bit characters. This jpayne@68: variable is dependent on the 'LC_CTYPE' locale category, and jpayne@68: may change if the locale is changed. jpayne@68: jpayne@68: 'page-completions' jpayne@68: If set to 'on', Readline uses an internal 'more'-like pager to jpayne@68: display a screenful of possible completions at a time. This jpayne@68: variable is 'on' by default. jpayne@68: jpayne@68: 'print-completions-horizontally' jpayne@68: If set to 'on', Readline will display completions with matches jpayne@68: sorted horizontally in alphabetical order, rather than down jpayne@68: the screen. The default is 'off'. jpayne@68: jpayne@68: 'revert-all-at-newline' jpayne@68: If set to 'on', Readline will undo all changes to history jpayne@68: lines before returning when 'accept-line' is executed. By jpayne@68: default, history lines may be modified and retain individual jpayne@68: undo lists across calls to 'readline()'. The default is jpayne@68: 'off'. jpayne@68: jpayne@68: 'show-all-if-ambiguous' jpayne@68: This alters the default behavior of the completion functions. jpayne@68: If set to 'on', words which have more than one possible jpayne@68: completion cause the matches to be listed immediately instead jpayne@68: of ringing the bell. The default value is 'off'. jpayne@68: jpayne@68: 'show-all-if-unmodified' jpayne@68: This alters the default behavior of the completion functions jpayne@68: in a fashion similar to SHOW-ALL-IF-AMBIGUOUS. If set to jpayne@68: 'on', words which have more than one possible completion jpayne@68: without any possible partial completion (the possible jpayne@68: completions don't share a common prefix) cause the matches to jpayne@68: be listed immediately instead of ringing the bell. The jpayne@68: default value is 'off'. jpayne@68: jpayne@68: 'show-mode-in-prompt' jpayne@68: If set to 'on', add a string to the beginning of the prompt jpayne@68: indicating the editing mode: emacs, vi command, or vi jpayne@68: insertion. The mode strings are user-settable (e.g., jpayne@68: EMACS-MODE-STRING). The default value is 'off'. jpayne@68: jpayne@68: 'skip-completed-text' jpayne@68: If set to 'on', this alters the default completion behavior jpayne@68: when inserting a single match into the line. It's only active jpayne@68: when performing completion in the middle of a word. If jpayne@68: enabled, Readline does not insert characters from the jpayne@68: completion that match characters after point in the word being jpayne@68: completed, so portions of the word following the cursor are jpayne@68: not duplicated. For instance, if this is enabled, attempting jpayne@68: completion when the cursor is after the 'e' in 'Makefile' will jpayne@68: result in 'Makefile' rather than 'Makefilefile', assuming jpayne@68: there is a single possible completion. The default value is jpayne@68: 'off'. jpayne@68: jpayne@68: 'vi-cmd-mode-string' jpayne@68: If the SHOW-MODE-IN-PROMPT variable is enabled, this string is jpayne@68: displayed immediately before the last line of the primary jpayne@68: prompt when vi editing mode is active and in command mode. jpayne@68: The value is expanded like a key binding, so the standard set jpayne@68: of meta- and control prefixes and backslash escape sequences jpayne@68: is available. Use the '\1' and '\2' escapes to begin and end jpayne@68: sequences of non-printing characters, which can be used to jpayne@68: embed a terminal control sequence into the mode string. The jpayne@68: default is '(cmd)'. jpayne@68: jpayne@68: 'vi-ins-mode-string' jpayne@68: If the SHOW-MODE-IN-PROMPT variable is enabled, this string is jpayne@68: displayed immediately before the last line of the primary jpayne@68: prompt when vi editing mode is active and in insertion mode. jpayne@68: The value is expanded like a key binding, so the standard set jpayne@68: of meta- and control prefixes and backslash escape sequences jpayne@68: is available. Use the '\1' and '\2' escapes to begin and end jpayne@68: sequences of non-printing characters, which can be used to jpayne@68: embed a terminal control sequence into the mode string. The jpayne@68: default is '(ins)'. jpayne@68: jpayne@68: 'visible-stats' jpayne@68: If set to 'on', a character denoting a file's type is appended jpayne@68: to the filename when listing possible completions. The jpayne@68: default is 'off'. jpayne@68: jpayne@68: Key Bindings jpayne@68: The syntax for controlling key bindings in the init file is simple. jpayne@68: First you need to find the name of the command that you want to jpayne@68: change. The following sections contain tables of the command name, jpayne@68: the default keybinding, if any, and a short description of what the jpayne@68: command does. jpayne@68: jpayne@68: Once you know the name of the command, simply place on a line in jpayne@68: the init file the name of the key you wish to bind the command to, jpayne@68: a colon, and then the name of the command. There can be no space jpayne@68: between the key name and the colon - that will be interpreted as jpayne@68: part of the key name. The name of the key can be expressed in jpayne@68: different ways, depending on what you find most comfortable. jpayne@68: jpayne@68: In addition to command names, Readline allows keys to be bound to a jpayne@68: string that is inserted when the key is pressed (a MACRO). jpayne@68: jpayne@68: KEYNAME: FUNCTION-NAME or MACRO jpayne@68: KEYNAME is the name of a key spelled out in English. For jpayne@68: example: jpayne@68: Control-u: universal-argument jpayne@68: Meta-Rubout: backward-kill-word jpayne@68: Control-o: "> output" jpayne@68: jpayne@68: In the example above, 'C-u' is bound to the function jpayne@68: 'universal-argument', 'M-DEL' is bound to the function jpayne@68: 'backward-kill-word', and 'C-o' is bound to run the macro jpayne@68: expressed on the right hand side (that is, to insert the text jpayne@68: '> output' into the line). jpayne@68: jpayne@68: A number of symbolic character names are recognized while jpayne@68: processing this key binding syntax: DEL, ESC, ESCAPE, LFD, jpayne@68: NEWLINE, RET, RETURN, RUBOUT, SPACE, SPC, and TAB. jpayne@68: jpayne@68: "KEYSEQ": FUNCTION-NAME or MACRO jpayne@68: KEYSEQ differs from KEYNAME above in that strings denoting an jpayne@68: entire key sequence can be specified, by placing the key jpayne@68: sequence in double quotes. Some GNU Emacs style key escapes jpayne@68: can be used, as in the following example, but the special jpayne@68: character names are not recognized. jpayne@68: jpayne@68: "\C-u": universal-argument jpayne@68: "\C-x\C-r": re-read-init-file jpayne@68: "\e[11~": "Function Key 1" jpayne@68: jpayne@68: In the above example, 'C-u' is again bound to the function jpayne@68: 'universal-argument' (just as it was in the first example), jpayne@68: ''C-x' 'C-r'' is bound to the function 're-read-init-file', jpayne@68: and ' <[> <1> <1> <~>' is bound to insert the text jpayne@68: 'Function Key 1'. jpayne@68: jpayne@68: The following GNU Emacs style escape sequences are available when jpayne@68: specifying key sequences: jpayne@68: jpayne@68: '\C-' jpayne@68: control prefix jpayne@68: '\M-' jpayne@68: meta prefix jpayne@68: '\e' jpayne@68: an escape character jpayne@68: '\\' jpayne@68: backslash jpayne@68: '\"' jpayne@68: <">, a double quotation mark jpayne@68: '\'' jpayne@68: <'>, a single quote or apostrophe jpayne@68: jpayne@68: In addition to the GNU Emacs style escape sequences, a second set jpayne@68: of backslash escapes is available: jpayne@68: jpayne@68: '\a' jpayne@68: alert (bell) jpayne@68: '\b' jpayne@68: backspace jpayne@68: '\d' jpayne@68: delete jpayne@68: '\f' jpayne@68: form feed jpayne@68: '\n' jpayne@68: newline jpayne@68: '\r' jpayne@68: carriage return jpayne@68: '\t' jpayne@68: horizontal tab jpayne@68: '\v' jpayne@68: vertical tab jpayne@68: '\NNN' jpayne@68: the eight-bit character whose value is the octal value NNN jpayne@68: (one to three digits) jpayne@68: '\xHH' jpayne@68: the eight-bit character whose value is the hexadecimal value jpayne@68: HH (one or two hex digits) jpayne@68: jpayne@68: When entering the text of a macro, single or double quotes must be jpayne@68: used to indicate a macro definition. Unquoted text is assumed to jpayne@68: be a function name. In the macro body, the backslash escapes jpayne@68: described above are expanded. Backslash will quote any other jpayne@68: character in the macro text, including '"' and '''. For example, jpayne@68: the following binding will make ''C-x' \' insert a single '\' into jpayne@68: the line: jpayne@68: "\C-x\\": "\\" jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Conditional Init Constructs, Next: Sample Init File, Prev: Readline Init File Syntax, Up: Readline Init File jpayne@68: jpayne@68: 1.3.2 Conditional Init Constructs jpayne@68: --------------------------------- jpayne@68: jpayne@68: Readline implements a facility similar in spirit to the conditional jpayne@68: compilation features of the C preprocessor which allows key bindings and jpayne@68: variable settings to be performed as the result of tests. There are jpayne@68: four parser directives used. jpayne@68: jpayne@68: '$if' jpayne@68: The '$if' construct allows bindings to be made based on the editing jpayne@68: mode, the terminal being used, or the application using Readline. jpayne@68: The text of the test, after any comparison operator, extends to the jpayne@68: end of the line; unless otherwise noted, no characters are required jpayne@68: to isolate it. jpayne@68: jpayne@68: 'mode' jpayne@68: The 'mode=' form of the '$if' directive is used to test jpayne@68: whether Readline is in 'emacs' or 'vi' mode. This may be used jpayne@68: in conjunction with the 'set keymap' command, for instance, to jpayne@68: set bindings in the 'emacs-standard' and 'emacs-ctlx' keymaps jpayne@68: only if Readline is starting out in 'emacs' mode. jpayne@68: jpayne@68: 'term' jpayne@68: The 'term=' form may be used to include terminal-specific key jpayne@68: bindings, perhaps to bind the key sequences output by the jpayne@68: terminal's function keys. The word on the right side of the jpayne@68: '=' is tested against both the full name of the terminal and jpayne@68: the portion of the terminal name before the first '-'. This jpayne@68: allows 'sun' to match both 'sun' and 'sun-cmd', for instance. jpayne@68: jpayne@68: 'version' jpayne@68: The 'version' test may be used to perform comparisons against jpayne@68: specific Readline versions. The 'version' expands to the jpayne@68: current Readline version. The set of comparison operators jpayne@68: includes '=' (and '=='), '!=', '<=', '>=', '<', and '>'. The jpayne@68: version number supplied on the right side of the operator jpayne@68: consists of a major version number, an optional decimal point, jpayne@68: and an optional minor version (e.g., '7.1'). If the minor jpayne@68: version is omitted, it is assumed to be '0'. The operator may jpayne@68: be separated from the string 'version' and from the version jpayne@68: number argument by whitespace. The following example sets a jpayne@68: variable if the Readline version being used is 7.0 or newer: jpayne@68: $if version >= 7.0 jpayne@68: set show-mode-in-prompt on jpayne@68: $endif jpayne@68: jpayne@68: 'application' jpayne@68: The APPLICATION construct is used to include jpayne@68: application-specific settings. Each program using the jpayne@68: Readline library sets the APPLICATION NAME, and you can test jpayne@68: for a particular value. This could be used to bind key jpayne@68: sequences to functions useful for a specific program. For jpayne@68: instance, the following command adds a key sequence that jpayne@68: quotes the current or previous word in Bash: jpayne@68: $if Bash jpayne@68: # Quote the current or previous word jpayne@68: "\C-xq": "\eb\"\ef\"" jpayne@68: $endif jpayne@68: jpayne@68: 'variable' jpayne@68: The VARIABLE construct provides simple equality tests for jpayne@68: Readline variables and values. The permitted comparison jpayne@68: operators are '=', '==', and '!='. The variable name must be jpayne@68: separated from the comparison operator by whitespace; the jpayne@68: operator may be separated from the value on the right hand jpayne@68: side by whitespace. Both string and boolean variables may be jpayne@68: tested. Boolean variables must be tested against the values jpayne@68: ON and OFF. The following example is equivalent to the jpayne@68: 'mode=emacs' test described above: jpayne@68: $if editing-mode == emacs jpayne@68: set show-mode-in-prompt on jpayne@68: $endif jpayne@68: jpayne@68: '$endif' jpayne@68: This command, as seen in the previous example, terminates an '$if' jpayne@68: command. jpayne@68: jpayne@68: '$else' jpayne@68: Commands in this branch of the '$if' directive are executed if the jpayne@68: test fails. jpayne@68: jpayne@68: '$include' jpayne@68: This directive takes a single filename as an argument and reads jpayne@68: commands and bindings from that file. For example, the following jpayne@68: directive reads from '/etc/inputrc': jpayne@68: $include /etc/inputrc jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Sample Init File, Prev: Conditional Init Constructs, Up: Readline Init File jpayne@68: jpayne@68: 1.3.3 Sample Init File jpayne@68: ---------------------- jpayne@68: jpayne@68: Here is an example of an INPUTRC file. This illustrates key binding, jpayne@68: variable assignment, and conditional syntax. jpayne@68: jpayne@68: # This file controls the behaviour of line input editing for jpayne@68: # programs that use the GNU Readline library. Existing jpayne@68: # programs include FTP, Bash, and GDB. jpayne@68: # jpayne@68: # You can re-read the inputrc file with C-x C-r. jpayne@68: # Lines beginning with '#' are comments. jpayne@68: # jpayne@68: # First, include any system-wide bindings and variable jpayne@68: # assignments from /etc/Inputrc jpayne@68: $include /etc/Inputrc jpayne@68: jpayne@68: # jpayne@68: # Set various bindings for emacs mode. jpayne@68: jpayne@68: set editing-mode emacs jpayne@68: jpayne@68: $if mode=emacs jpayne@68: jpayne@68: Meta-Control-h: backward-kill-word Text after the function name is ignored jpayne@68: jpayne@68: # jpayne@68: # Arrow keys in keypad mode jpayne@68: # jpayne@68: #"\M-OD": backward-char jpayne@68: #"\M-OC": forward-char jpayne@68: #"\M-OA": previous-history jpayne@68: #"\M-OB": next-history jpayne@68: # jpayne@68: # Arrow keys in ANSI mode jpayne@68: # jpayne@68: "\M-[D": backward-char jpayne@68: "\M-[C": forward-char jpayne@68: "\M-[A": previous-history jpayne@68: "\M-[B": next-history jpayne@68: # jpayne@68: # Arrow keys in 8 bit keypad mode jpayne@68: # jpayne@68: #"\M-\C-OD": backward-char jpayne@68: #"\M-\C-OC": forward-char jpayne@68: #"\M-\C-OA": previous-history jpayne@68: #"\M-\C-OB": next-history jpayne@68: # jpayne@68: # Arrow keys in 8 bit ANSI mode jpayne@68: # jpayne@68: #"\M-\C-[D": backward-char jpayne@68: #"\M-\C-[C": forward-char jpayne@68: #"\M-\C-[A": previous-history jpayne@68: #"\M-\C-[B": next-history jpayne@68: jpayne@68: C-q: quoted-insert jpayne@68: jpayne@68: $endif jpayne@68: jpayne@68: # An old-style binding. This happens to be the default. jpayne@68: TAB: complete jpayne@68: jpayne@68: # Macros that are convenient for shell interaction jpayne@68: $if Bash jpayne@68: # edit the path jpayne@68: "\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f" jpayne@68: # prepare to type a quoted word -- jpayne@68: # insert open and close double quotes jpayne@68: # and move to just after the open quote jpayne@68: "\C-x\"": "\"\"\C-b" jpayne@68: # insert a backslash (testing backslash escapes jpayne@68: # in sequences and macros) jpayne@68: "\C-x\\": "\\" jpayne@68: # Quote the current or previous word jpayne@68: "\C-xq": "\eb\"\ef\"" jpayne@68: # Add a binding to refresh the line, which is unbound jpayne@68: "\C-xr": redraw-current-line jpayne@68: # Edit variable on current line. jpayne@68: "\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y=" jpayne@68: $endif jpayne@68: jpayne@68: # use a visible bell if one is available jpayne@68: set bell-style visible jpayne@68: jpayne@68: # don't strip characters to 7 bits when reading jpayne@68: set input-meta on jpayne@68: jpayne@68: # allow iso-latin1 characters to be inserted rather jpayne@68: # than converted to prefix-meta sequences jpayne@68: set convert-meta off jpayne@68: jpayne@68: # display characters with the eighth bit set directly jpayne@68: # rather than as meta-prefixed characters jpayne@68: set output-meta on jpayne@68: jpayne@68: # if there are 150 or more possible completions for a word, jpayne@68: # ask whether or not the user wants to see all of them jpayne@68: set completion-query-items 150 jpayne@68: jpayne@68: # For FTP jpayne@68: $if Ftp jpayne@68: "\C-xg": "get \M-?" jpayne@68: "\C-xt": "put \M-?" jpayne@68: "\M-.": yank-last-arg jpayne@68: $endif jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Bindable Readline Commands, Next: Readline vi Mode, Prev: Readline Init File, Up: Command Line Editing jpayne@68: jpayne@68: 1.4 Bindable Readline Commands jpayne@68: ============================== jpayne@68: jpayne@68: * Menu: jpayne@68: jpayne@68: * Commands For Moving:: Moving about the line. jpayne@68: * Commands For History:: Getting at previous lines. jpayne@68: * Commands For Text:: Commands for changing text. jpayne@68: * Commands For Killing:: Commands for killing and yanking. jpayne@68: * Numeric Arguments:: Specifying numeric arguments, repeat counts. jpayne@68: * Commands For Completion:: Getting Readline to do the typing for you. jpayne@68: * Keyboard Macros:: Saving and re-executing typed characters jpayne@68: * Miscellaneous Commands:: Other miscellaneous commands. jpayne@68: jpayne@68: This section describes Readline commands that may be bound to key jpayne@68: sequences. Command names without an accompanying key sequence are jpayne@68: unbound by default. jpayne@68: jpayne@68: In the following descriptions, "point" refers to the current cursor jpayne@68: position, and "mark" refers to a cursor position saved by the 'set-mark' jpayne@68: command. The text between the point and mark is referred to as the jpayne@68: "region". jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Commands For Moving, Next: Commands For History, Up: Bindable Readline Commands jpayne@68: jpayne@68: 1.4.1 Commands For Moving jpayne@68: ------------------------- jpayne@68: jpayne@68: 'beginning-of-line (C-a)' jpayne@68: Move to the start of the current line. jpayne@68: jpayne@68: 'end-of-line (C-e)' jpayne@68: Move to the end of the line. jpayne@68: jpayne@68: 'forward-char (C-f)' jpayne@68: Move forward a character. jpayne@68: jpayne@68: 'backward-char (C-b)' jpayne@68: Move back a character. jpayne@68: jpayne@68: 'forward-word (M-f)' jpayne@68: Move forward to the end of the next word. Words are composed of jpayne@68: letters and digits. jpayne@68: jpayne@68: 'backward-word (M-b)' jpayne@68: Move back to the start of the current or previous word. Words are jpayne@68: composed of letters and digits. jpayne@68: jpayne@68: 'previous-screen-line ()' jpayne@68: Attempt to move point to the same physical screen column on the jpayne@68: previous physical screen line. This will not have the desired jpayne@68: effect if the current Readline line does not take up more than one jpayne@68: physical line or if point is not greater than the length of the jpayne@68: prompt plus the screen width. jpayne@68: jpayne@68: 'next-screen-line ()' jpayne@68: Attempt to move point to the same physical screen column on the jpayne@68: next physical screen line. This will not have the desired effect jpayne@68: if the current Readline line does not take up more than one jpayne@68: physical line or if the length of the current Readline line is not jpayne@68: greater than the length of the prompt plus the screen width. jpayne@68: jpayne@68: 'clear-display (M-C-l)' jpayne@68: Clear the screen and, if possible, the terminal's scrollback jpayne@68: buffer, then redraw the current line, leaving the current line at jpayne@68: the top of the screen. jpayne@68: jpayne@68: 'clear-screen (C-l)' jpayne@68: Clear the screen, then redraw the current line, leaving the current jpayne@68: line at the top of the screen. jpayne@68: jpayne@68: 'redraw-current-line ()' jpayne@68: Refresh the current line. By default, this is unbound. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Commands For History, Next: Commands For Text, Prev: Commands For Moving, Up: Bindable Readline Commands jpayne@68: jpayne@68: 1.4.2 Commands For Manipulating The History jpayne@68: ------------------------------------------- jpayne@68: jpayne@68: 'accept-line (Newline or Return)' jpayne@68: Accept the line regardless of where the cursor is. If this line is jpayne@68: non-empty, it may be added to the history list for future recall jpayne@68: with 'add_history()'. If this line is a modified history line, the jpayne@68: history line is restored to its original state. jpayne@68: jpayne@68: 'previous-history (C-p)' jpayne@68: Move 'back' through the history list, fetching the previous jpayne@68: command. jpayne@68: jpayne@68: 'next-history (C-n)' jpayne@68: Move 'forward' through the history list, fetching the next command. jpayne@68: jpayne@68: 'beginning-of-history (M-<)' jpayne@68: Move to the first line in the history. jpayne@68: jpayne@68: 'end-of-history (M->)' jpayne@68: Move to the end of the input history, i.e., the line currently jpayne@68: being entered. jpayne@68: jpayne@68: 'reverse-search-history (C-r)' jpayne@68: Search backward starting at the current line and moving 'up' jpayne@68: through the history as necessary. This is an incremental search. jpayne@68: This command sets the region to the matched text and activates the jpayne@68: mark. jpayne@68: jpayne@68: 'forward-search-history (C-s)' jpayne@68: Search forward starting at the current line and moving 'down' jpayne@68: through the history as necessary. This is an incremental search. jpayne@68: This command sets the region to the matched text and activates the jpayne@68: mark. jpayne@68: jpayne@68: 'non-incremental-reverse-search-history (M-p)' jpayne@68: Search backward starting at the current line and moving 'up' jpayne@68: through the history as necessary using a non-incremental search for jpayne@68: a string supplied by the user. The search string may match jpayne@68: anywhere in a history line. jpayne@68: jpayne@68: 'non-incremental-forward-search-history (M-n)' jpayne@68: Search forward starting at the current line and moving 'down' jpayne@68: through the history as necessary using a non-incremental search for jpayne@68: a string supplied by the user. The search string may match jpayne@68: anywhere in a history line. jpayne@68: jpayne@68: 'history-search-forward ()' jpayne@68: Search forward through the history for the string of characters jpayne@68: between the start of the current line and the point. The search jpayne@68: string must match at the beginning of a history line. This is a jpayne@68: non-incremental search. By default, this command is unbound. jpayne@68: jpayne@68: 'history-search-backward ()' jpayne@68: Search backward through the history for the string of characters jpayne@68: between the start of the current line and the point. The search jpayne@68: string must match at the beginning of a history line. This is a jpayne@68: non-incremental search. By default, this command is unbound. jpayne@68: jpayne@68: 'history-substring-search-forward ()' jpayne@68: Search forward through the history for the string of characters jpayne@68: between the start of the current line and the point. The search jpayne@68: string may match anywhere in a history line. This is a jpayne@68: non-incremental search. By default, this command is unbound. jpayne@68: jpayne@68: 'history-substring-search-backward ()' jpayne@68: Search backward through the history for the string of characters jpayne@68: between the start of the current line and the point. The search jpayne@68: string may match anywhere in a history line. This is a jpayne@68: non-incremental search. By default, this command is unbound. jpayne@68: jpayne@68: 'yank-nth-arg (M-C-y)' jpayne@68: Insert the first argument to the previous command (usually the jpayne@68: second word on the previous line) at point. With an argument N, jpayne@68: insert the Nth word from the previous command (the words in the jpayne@68: previous command begin with word 0). A negative argument inserts jpayne@68: the Nth word from the end of the previous command. Once the jpayne@68: argument N is computed, the argument is extracted as if the '!N' jpayne@68: history expansion had been specified. jpayne@68: jpayne@68: 'yank-last-arg (M-. or M-_)' jpayne@68: Insert last argument to the previous command (the last word of the jpayne@68: previous history entry). With a numeric argument, behave exactly jpayne@68: like 'yank-nth-arg'. Successive calls to 'yank-last-arg' move back jpayne@68: through the history list, inserting the last word (or the word jpayne@68: specified by the argument to the first call) of each line in turn. jpayne@68: Any numeric argument supplied to these successive calls determines jpayne@68: the direction to move through the history. A negative argument jpayne@68: switches the direction through the history (back or forward). The jpayne@68: history expansion facilities are used to extract the last argument, jpayne@68: as if the '!$' history expansion had been specified. jpayne@68: jpayne@68: 'operate-and-get-next (C-o)' jpayne@68: Accept the current line for return to the calling application as if jpayne@68: a newline had been entered, and fetch the next line relative to the jpayne@68: current line from the history for editing. A numeric argument, if jpayne@68: supplied, specifies the history entry to use instead of the current jpayne@68: line. jpayne@68: jpayne@68: 'fetch-history ()' jpayne@68: With a numeric argument, fetch that entry from the history list and jpayne@68: make it the current line. Without an argument, move back to the jpayne@68: first entry in the history list. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands jpayne@68: jpayne@68: 1.4.3 Commands For Changing Text jpayne@68: -------------------------------- jpayne@68: jpayne@68: 'end-of-file (usually C-d)' jpayne@68: The character indicating end-of-file as set, for example, by jpayne@68: 'stty'. If this character is read when there are no characters on jpayne@68: the line, and point is at the beginning of the line, Readline jpayne@68: interprets it as the end of input and returns EOF. jpayne@68: jpayne@68: 'delete-char (C-d)' jpayne@68: Delete the character at point. If this function is bound to the jpayne@68: same character as the tty EOF character, as 'C-d' commonly is, see jpayne@68: above for the effects. jpayne@68: jpayne@68: 'backward-delete-char (Rubout)' jpayne@68: Delete the character behind the cursor. A numeric argument means jpayne@68: to kill the characters instead of deleting them. jpayne@68: jpayne@68: 'forward-backward-delete-char ()' jpayne@68: Delete the character under the cursor, unless the cursor is at the jpayne@68: end of the line, in which case the character behind the cursor is jpayne@68: deleted. By default, this is not bound to a key. jpayne@68: jpayne@68: 'quoted-insert (C-q or C-v)' jpayne@68: Add the next character typed to the line verbatim. This is how to jpayne@68: insert key sequences like 'C-q', for example. jpayne@68: jpayne@68: 'tab-insert (M-)' jpayne@68: Insert a tab character. jpayne@68: jpayne@68: 'self-insert (a, b, A, 1, !, ...)' jpayne@68: Insert yourself. jpayne@68: jpayne@68: 'bracketed-paste-begin ()' jpayne@68: This function is intended to be bound to the "bracketed paste" jpayne@68: escape sequence sent by some terminals, and such a binding is jpayne@68: assigned by default. It allows Readline to insert the pasted text jpayne@68: as a single unit without treating each character as if it had been jpayne@68: read from the keyboard. The characters are inserted as if each one jpayne@68: was bound to 'self-insert' instead of executing any editing jpayne@68: commands. jpayne@68: jpayne@68: Bracketed paste sets the region (the characters between point and jpayne@68: the mark) to the inserted text. It uses the concept of an _active jpayne@68: mark_: when the mark is active, Readline redisplay uses the jpayne@68: terminal's standout mode to denote the region. jpayne@68: jpayne@68: 'transpose-chars (C-t)' jpayne@68: Drag the character before the cursor forward over the character at jpayne@68: the cursor, moving the cursor forward as well. If the insertion jpayne@68: point is at the end of the line, then this transposes the last two jpayne@68: characters of the line. Negative arguments have no effect. jpayne@68: jpayne@68: 'transpose-words (M-t)' jpayne@68: Drag the word before point past the word after point, moving point jpayne@68: past that word as well. If the insertion point is at the end of jpayne@68: the line, this transposes the last two words on the line. jpayne@68: jpayne@68: 'upcase-word (M-u)' jpayne@68: Uppercase the current (or following) word. With a negative jpayne@68: argument, uppercase the previous word, but do not move the cursor. jpayne@68: jpayne@68: 'downcase-word (M-l)' jpayne@68: Lowercase the current (or following) word. With a negative jpayne@68: argument, lowercase the previous word, but do not move the cursor. jpayne@68: jpayne@68: 'capitalize-word (M-c)' jpayne@68: Capitalize the current (or following) word. With a negative jpayne@68: argument, capitalize the previous word, but do not move the cursor. jpayne@68: jpayne@68: 'overwrite-mode ()' jpayne@68: Toggle overwrite mode. With an explicit positive numeric argument, jpayne@68: switches to overwrite mode. With an explicit non-positive numeric jpayne@68: argument, switches to insert mode. This command affects only jpayne@68: 'emacs' mode; 'vi' mode does overwrite differently. Each call to jpayne@68: 'readline()' starts in insert mode. jpayne@68: jpayne@68: In overwrite mode, characters bound to 'self-insert' replace the jpayne@68: text at point rather than pushing the text to the right. jpayne@68: Characters bound to 'backward-delete-char' replace the character jpayne@68: before point with a space. jpayne@68: jpayne@68: By default, this command is unbound. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Commands For Killing, Next: Numeric Arguments, Prev: Commands For Text, Up: Bindable Readline Commands jpayne@68: jpayne@68: 1.4.4 Killing And Yanking jpayne@68: ------------------------- jpayne@68: jpayne@68: 'kill-line (C-k)' jpayne@68: Kill the text from point to the end of the line. With a negative jpayne@68: numeric argument, kill backward from the cursor to the beginning of jpayne@68: the current line. jpayne@68: jpayne@68: 'backward-kill-line (C-x Rubout)' jpayne@68: Kill backward from the cursor to the beginning of the current line. jpayne@68: With a negative numeric argument, kill forward from the cursor to jpayne@68: the end of the current line. jpayne@68: jpayne@68: 'unix-line-discard (C-u)' jpayne@68: Kill backward from the cursor to the beginning of the current line. jpayne@68: jpayne@68: 'kill-whole-line ()' jpayne@68: Kill all characters on the current line, no matter where point is. jpayne@68: By default, this is unbound. jpayne@68: jpayne@68: 'kill-word (M-d)' jpayne@68: Kill from point to the end of the current word, or if between jpayne@68: words, to the end of the next word. Word boundaries are the same jpayne@68: as 'forward-word'. jpayne@68: jpayne@68: 'backward-kill-word (M-)' jpayne@68: Kill the word behind point. Word boundaries are the same as jpayne@68: 'backward-word'. jpayne@68: jpayne@68: 'shell-transpose-words (M-C-t)' jpayne@68: Drag the word before point past the word after point, moving point jpayne@68: past that word as well. If the insertion point is at the end of jpayne@68: the line, this transposes the last two words on the line. Word jpayne@68: boundaries are the same as 'shell-forward-word' and jpayne@68: 'shell-backward-word'. jpayne@68: jpayne@68: 'unix-word-rubout (C-w)' jpayne@68: Kill the word behind point, using white space as a word boundary. jpayne@68: The killed text is saved on the kill-ring. jpayne@68: jpayne@68: 'unix-filename-rubout ()' jpayne@68: Kill the word behind point, using white space and the slash jpayne@68: character as the word boundaries. The killed text is saved on the jpayne@68: kill-ring. jpayne@68: jpayne@68: 'delete-horizontal-space ()' jpayne@68: Delete all spaces and tabs around point. By default, this is jpayne@68: unbound. jpayne@68: jpayne@68: 'kill-region ()' jpayne@68: Kill the text in the current region. By default, this command is jpayne@68: unbound. jpayne@68: jpayne@68: 'copy-region-as-kill ()' jpayne@68: Copy the text in the region to the kill buffer, so it can be yanked jpayne@68: right away. By default, this command is unbound. jpayne@68: jpayne@68: 'copy-backward-word ()' jpayne@68: Copy the word before point to the kill buffer. The word boundaries jpayne@68: are the same as 'backward-word'. By default, this command is jpayne@68: unbound. jpayne@68: jpayne@68: 'copy-forward-word ()' jpayne@68: Copy the word following point to the kill buffer. The word jpayne@68: boundaries are the same as 'forward-word'. By default, this jpayne@68: command is unbound. jpayne@68: jpayne@68: 'yank (C-y)' jpayne@68: Yank the top of the kill ring into the buffer at point. jpayne@68: jpayne@68: 'yank-pop (M-y)' jpayne@68: Rotate the kill-ring, and yank the new top. You can only do this jpayne@68: if the prior command is 'yank' or 'yank-pop'. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Numeric Arguments, Next: Commands For Completion, Prev: Commands For Killing, Up: Bindable Readline Commands jpayne@68: jpayne@68: 1.4.5 Specifying Numeric Arguments jpayne@68: ---------------------------------- jpayne@68: jpayne@68: 'digit-argument (M-0, M-1, ... M--)' jpayne@68: Add this digit to the argument already accumulating, or start a new jpayne@68: argument. 'M--' starts a negative argument. jpayne@68: jpayne@68: 'universal-argument ()' jpayne@68: This is another way to specify an argument. If this command is jpayne@68: followed by one or more digits, optionally with a leading minus jpayne@68: sign, those digits define the argument. If the command is followed jpayne@68: by digits, executing 'universal-argument' again ends the numeric jpayne@68: argument, but is otherwise ignored. As a special case, if this jpayne@68: command is immediately followed by a character that is neither a jpayne@68: digit nor minus sign, the argument count for the next command is jpayne@68: multiplied by four. The argument count is initially one, so jpayne@68: executing this function the first time makes the argument count jpayne@68: four, a second time makes the argument count sixteen, and so on. jpayne@68: By default, this is not bound to a key. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Commands For Completion, Next: Keyboard Macros, Prev: Numeric Arguments, Up: Bindable Readline Commands jpayne@68: jpayne@68: 1.4.6 Letting Readline Type For You jpayne@68: ----------------------------------- jpayne@68: jpayne@68: 'complete ()' jpayne@68: Attempt to perform completion on the text before point. The actual jpayne@68: completion performed is application-specific. The default is jpayne@68: filename completion. jpayne@68: jpayne@68: 'possible-completions (M-?)' jpayne@68: List the possible completions of the text before point. When jpayne@68: displaying completions, Readline sets the number of columns used jpayne@68: for display to the value of 'completion-display-width', the value jpayne@68: of the environment variable 'COLUMNS', or the screen width, in that jpayne@68: order. jpayne@68: jpayne@68: 'insert-completions (M-*)' jpayne@68: Insert all completions of the text before point that would have jpayne@68: been generated by 'possible-completions'. jpayne@68: jpayne@68: 'menu-complete ()' jpayne@68: Similar to 'complete', but replaces the word to be completed with a jpayne@68: single match from the list of possible completions. Repeated jpayne@68: execution of 'menu-complete' steps through the list of possible jpayne@68: completions, inserting each match in turn. At the end of the list jpayne@68: of completions, the bell is rung (subject to the setting of jpayne@68: 'bell-style') and the original text is restored. An argument of N jpayne@68: moves N positions forward in the list of matches; a negative jpayne@68: argument may be used to move backward through the list. This jpayne@68: command is intended to be bound to , but is unbound by jpayne@68: default. jpayne@68: jpayne@68: 'menu-complete-backward ()' jpayne@68: Identical to 'menu-complete', but moves backward through the list jpayne@68: of possible completions, as if 'menu-complete' had been given a jpayne@68: negative argument. jpayne@68: jpayne@68: 'delete-char-or-list ()' jpayne@68: Deletes the character under the cursor if not at the beginning or jpayne@68: end of the line (like 'delete-char'). If at the end of the line, jpayne@68: behaves identically to 'possible-completions'. This command is jpayne@68: unbound by default. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev: Commands For Completion, Up: Bindable Readline Commands jpayne@68: jpayne@68: 1.4.7 Keyboard Macros jpayne@68: --------------------- jpayne@68: jpayne@68: 'start-kbd-macro (C-x ()' jpayne@68: Begin saving the characters typed into the current keyboard macro. jpayne@68: jpayne@68: 'end-kbd-macro (C-x ))' jpayne@68: Stop saving the characters typed into the current keyboard macro jpayne@68: and save the definition. jpayne@68: jpayne@68: 'call-last-kbd-macro (C-x e)' jpayne@68: Re-execute the last keyboard macro defined, by making the jpayne@68: characters in the macro appear as if typed at the keyboard. jpayne@68: jpayne@68: 'print-last-kbd-macro ()' jpayne@68: Print the last keyboard macro defined in a format suitable for the jpayne@68: INPUTRC file. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bindable Readline Commands jpayne@68: jpayne@68: 1.4.8 Some Miscellaneous Commands jpayne@68: --------------------------------- jpayne@68: jpayne@68: 're-read-init-file (C-x C-r)' jpayne@68: Read in the contents of the INPUTRC file, and incorporate any jpayne@68: bindings or variable assignments found there. jpayne@68: jpayne@68: 'abort (C-g)' jpayne@68: Abort the current editing command and ring the terminal's bell jpayne@68: (subject to the setting of 'bell-style'). jpayne@68: jpayne@68: 'do-lowercase-version (M-A, M-B, M-X, ...)' jpayne@68: If the metafied character X is upper case, run the command that is jpayne@68: bound to the corresponding metafied lower case character. The jpayne@68: behavior is undefined if X is already lower case. jpayne@68: jpayne@68: 'prefix-meta ()' jpayne@68: Metafy the next character typed. This is for keyboards without a jpayne@68: meta key. Typing ' f' is equivalent to typing 'M-f'. jpayne@68: jpayne@68: 'undo (C-_ or C-x C-u)' jpayne@68: Incremental undo, separately remembered for each line. jpayne@68: jpayne@68: 'revert-line (M-r)' jpayne@68: Undo all changes made to this line. This is like executing the jpayne@68: 'undo' command enough times to get back to the beginning. jpayne@68: jpayne@68: 'tilde-expand (M-~)' jpayne@68: Perform tilde expansion on the current word. jpayne@68: jpayne@68: 'set-mark (C-@)' jpayne@68: Set the mark to the point. If a numeric argument is supplied, the jpayne@68: mark is set to that position. jpayne@68: jpayne@68: 'exchange-point-and-mark (C-x C-x)' jpayne@68: Swap the point with the mark. The current cursor position is set jpayne@68: to the saved position, and the old cursor position is saved as the jpayne@68: mark. jpayne@68: jpayne@68: 'character-search (C-])' jpayne@68: A character is read and point is moved to the next occurrence of jpayne@68: that character. A negative argument searches for previous jpayne@68: occurrences. jpayne@68: jpayne@68: 'character-search-backward (M-C-])' jpayne@68: A character is read and point is moved to the previous occurrence jpayne@68: of that character. A negative argument searches for subsequent jpayne@68: occurrences. jpayne@68: jpayne@68: 'skip-csi-sequence ()' jpayne@68: Read enough characters to consume a multi-key sequence such as jpayne@68: those defined for keys like Home and End. Such sequences begin jpayne@68: with a Control Sequence Indicator (CSI), usually ESC-[. If this jpayne@68: sequence is bound to "\e[", keys producing such sequences will have jpayne@68: no effect unless explicitly bound to a Readline command, instead of jpayne@68: inserting stray characters into the editing buffer. This is jpayne@68: unbound by default, but usually bound to ESC-[. jpayne@68: jpayne@68: 'insert-comment (M-#)' jpayne@68: Without a numeric argument, the value of the 'comment-begin' jpayne@68: variable is inserted at the beginning of the current line. If a jpayne@68: numeric argument is supplied, this command acts as a toggle: if the jpayne@68: characters at the beginning of the line do not match the value of jpayne@68: 'comment-begin', the value is inserted, otherwise the characters in jpayne@68: 'comment-begin' are deleted from the beginning of the line. In jpayne@68: either case, the line is accepted as if a newline had been typed. jpayne@68: jpayne@68: 'dump-functions ()' jpayne@68: Print all of the functions and their key bindings to the Readline jpayne@68: output stream. If a numeric argument is supplied, the output is jpayne@68: formatted in such a way that it can be made part of an INPUTRC jpayne@68: file. This command is unbound by default. jpayne@68: jpayne@68: 'dump-variables ()' jpayne@68: Print all of the settable variables and their values to the jpayne@68: Readline output stream. If a numeric argument is supplied, the jpayne@68: output is formatted in such a way that it can be made part of an jpayne@68: INPUTRC file. This command is unbound by default. jpayne@68: jpayne@68: 'dump-macros ()' jpayne@68: Print all of the Readline key sequences bound to macros and the jpayne@68: strings they output. If a numeric argument is supplied, the output jpayne@68: is formatted in such a way that it can be made part of an INPUTRC jpayne@68: file. This command is unbound by default. jpayne@68: jpayne@68: 'emacs-editing-mode (C-e)' jpayne@68: When in 'vi' command mode, this causes a switch to 'emacs' editing jpayne@68: mode. jpayne@68: jpayne@68: 'vi-editing-mode (M-C-j)' jpayne@68: When in 'emacs' editing mode, this causes a switch to 'vi' editing jpayne@68: mode. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: Readline vi Mode, Prev: Bindable Readline Commands, Up: Command Line Editing jpayne@68: jpayne@68: 1.5 Readline vi Mode jpayne@68: ==================== jpayne@68: jpayne@68: While the Readline library does not have a full set of 'vi' editing jpayne@68: functions, it does contain enough to allow simple editing of the line. jpayne@68: The Readline 'vi' mode behaves as specified in the POSIX standard. jpayne@68: jpayne@68: In order to switch interactively between 'emacs' and 'vi' editing jpayne@68: modes, use the command 'M-C-j' (bound to emacs-editing-mode when in 'vi' jpayne@68: mode and to vi-editing-mode in 'emacs' mode). The Readline default is jpayne@68: 'emacs' mode. jpayne@68: jpayne@68: When you enter a line in 'vi' mode, you are already placed in jpayne@68: 'insertion' mode, as if you had typed an 'i'. Pressing switches jpayne@68: you into 'command' mode, where you can edit the text of the line with jpayne@68: the standard 'vi' movement keys, move to previous history lines with 'k' jpayne@68: and subsequent lines with 'j', and so forth. jpayne@68: jpayne@68:  jpayne@68: File: rluserman.info, Node: GNU Free Documentation License, Prev: Command Line Editing, Up: Top jpayne@68: jpayne@68: Appendix A GNU Free Documentation License jpayne@68: ***************************************** jpayne@68: jpayne@68: Version 1.3, 3 November 2008 jpayne@68: jpayne@68: Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. jpayne@68: jpayne@68: jpayne@68: Everyone is permitted to copy and distribute verbatim copies jpayne@68: of this license document, but changing it is not allowed. jpayne@68: jpayne@68: 0. PREAMBLE jpayne@68: jpayne@68: The purpose of this License is to make a manual, textbook, or other jpayne@68: functional and useful document "free" in the sense of freedom: to jpayne@68: assure everyone the effective freedom to copy and redistribute it, jpayne@68: with or without modifying it, either commercially or jpayne@68: noncommercially. Secondarily, this License preserves for the jpayne@68: author and publisher a way to get credit for their work, while not jpayne@68: being considered responsible for modifications made by others. jpayne@68: jpayne@68: This License is a kind of "copyleft", which means that derivative jpayne@68: works of the document must themselves be free in the same sense. jpayne@68: It complements the GNU General Public License, which is a copyleft jpayne@68: license designed for free software. jpayne@68: jpayne@68: We have designed this License in order to use it for manuals for jpayne@68: free software, because free software needs free documentation: a jpayne@68: free program should come with manuals providing the same freedoms jpayne@68: that the software does. But this License is not limited to jpayne@68: software manuals; it can be used for any textual work, regardless jpayne@68: of subject matter or whether it is published as a printed book. We jpayne@68: recommend this License principally for works whose purpose is jpayne@68: instruction or reference. jpayne@68: jpayne@68: 1. APPLICABILITY AND DEFINITIONS jpayne@68: jpayne@68: This License applies to any manual or other work, in any medium, jpayne@68: that contains a notice placed by the copyright holder saying it can jpayne@68: be distributed under the terms of this License. Such a notice jpayne@68: grants a world-wide, royalty-free license, unlimited in duration, jpayne@68: to use that work under the conditions stated herein. The jpayne@68: "Document", below, refers to any such manual or work. Any member jpayne@68: of the public is a licensee, and is addressed as "you". You accept jpayne@68: the license if you copy, modify or distribute the work in a way jpayne@68: requiring permission under copyright law. jpayne@68: jpayne@68: A "Modified Version" of the Document means any work containing the jpayne@68: Document or a portion of it, either copied verbatim, or with jpayne@68: modifications and/or translated into another language. jpayne@68: jpayne@68: A "Secondary Section" is a named appendix or a front-matter section jpayne@68: of the Document that deals exclusively with the relationship of the jpayne@68: publishers or authors of the Document to the Document's overall jpayne@68: subject (or to related matters) and contains nothing that could jpayne@68: fall directly within that overall subject. (Thus, if the Document jpayne@68: is in part a textbook of mathematics, a Secondary Section may not jpayne@68: explain any mathematics.) The relationship could be a matter of jpayne@68: historical connection with the subject or with related matters, or jpayne@68: of legal, commercial, philosophical, ethical or political position jpayne@68: regarding them. jpayne@68: jpayne@68: The "Invariant Sections" are certain Secondary Sections whose jpayne@68: titles are designated, as being those of Invariant Sections, in the jpayne@68: notice that says that the Document is released under this License. jpayne@68: If a section does not fit the above definition of Secondary then it jpayne@68: is not allowed to be designated as Invariant. The Document may jpayne@68: contain zero Invariant Sections. If the Document does not identify jpayne@68: any Invariant Sections then there are none. jpayne@68: jpayne@68: The "Cover Texts" are certain short passages of text that are jpayne@68: listed, as Front-Cover Texts or Back-Cover Texts, in the notice jpayne@68: that says that the Document is released under this License. A jpayne@68: Front-Cover Text may be at most 5 words, and a Back-Cover Text may jpayne@68: be at most 25 words. jpayne@68: jpayne@68: A "Transparent" copy of the Document means a machine-readable copy, jpayne@68: represented in a format whose specification is available to the jpayne@68: general public, that is suitable for revising the document jpayne@68: straightforwardly with generic text editors or (for images composed jpayne@68: of pixels) generic paint programs or (for drawings) some widely jpayne@68: available drawing editor, and that is suitable for input to text jpayne@68: formatters or for automatic translation to a variety of formats jpayne@68: suitable for input to text formatters. A copy made in an otherwise jpayne@68: Transparent file format whose markup, or absence of markup, has jpayne@68: been arranged to thwart or discourage subsequent modification by jpayne@68: readers is not Transparent. An image format is not Transparent if jpayne@68: used for any substantial amount of text. A copy that is not jpayne@68: "Transparent" is called "Opaque". jpayne@68: jpayne@68: Examples of suitable formats for Transparent copies include plain jpayne@68: ASCII without markup, Texinfo input format, LaTeX input format, jpayne@68: SGML or XML using a publicly available DTD, and standard-conforming jpayne@68: simple HTML, PostScript or PDF designed for human modification. jpayne@68: Examples of transparent image formats include PNG, XCF and JPG. jpayne@68: Opaque formats include proprietary formats that can be read and jpayne@68: edited only by proprietary word processors, SGML or XML for which jpayne@68: the DTD and/or processing tools are not generally available, and jpayne@68: the machine-generated HTML, PostScript or PDF produced by some word jpayne@68: processors for output purposes only. jpayne@68: jpayne@68: The "Title Page" means, for a printed book, the title page itself, jpayne@68: plus such following pages as are needed to hold, legibly, the jpayne@68: material this License requires to appear in the title page. For jpayne@68: works in formats which do not have any title page as such, "Title jpayne@68: Page" means the text near the most prominent appearance of the jpayne@68: work's title, preceding the beginning of the body of the text. jpayne@68: jpayne@68: The "publisher" means any person or entity that distributes copies jpayne@68: of the Document to the public. jpayne@68: jpayne@68: A section "Entitled XYZ" means a named subunit of the Document jpayne@68: whose title either is precisely XYZ or contains XYZ in parentheses jpayne@68: following text that translates XYZ in another language. (Here XYZ jpayne@68: stands for a specific section name mentioned below, such as jpayne@68: "Acknowledgements", "Dedications", "Endorsements", or "History".) jpayne@68: To "Preserve the Title" of such a section when you modify the jpayne@68: Document means that it remains a section "Entitled XYZ" according jpayne@68: to this definition. jpayne@68: jpayne@68: The Document may include Warranty Disclaimers next to the notice jpayne@68: which states that this License applies to the Document. These jpayne@68: Warranty Disclaimers are considered to be included by reference in jpayne@68: this License, but only as regards disclaiming warranties: any other jpayne@68: implication that these Warranty Disclaimers may have is void and jpayne@68: has no effect on the meaning of this License. jpayne@68: jpayne@68: 2. VERBATIM COPYING jpayne@68: jpayne@68: You may copy and distribute the Document in any medium, either jpayne@68: commercially or noncommercially, provided that this License, the jpayne@68: copyright notices, and the license notice saying this License jpayne@68: applies to the Document are reproduced in all copies, and that you jpayne@68: add no other conditions whatsoever to those of this License. You jpayne@68: may not use technical measures to obstruct or control the reading jpayne@68: or further copying of the copies you make or distribute. However, jpayne@68: you may accept compensation in exchange for copies. If you jpayne@68: distribute a large enough number of copies you must also follow the jpayne@68: conditions in section 3. jpayne@68: jpayne@68: You may also lend copies, under the same conditions stated above, jpayne@68: and you may publicly display copies. jpayne@68: jpayne@68: 3. COPYING IN QUANTITY jpayne@68: jpayne@68: If you publish printed copies (or copies in media that commonly jpayne@68: have printed covers) of the Document, numbering more than 100, and jpayne@68: the Document's license notice requires Cover Texts, you must jpayne@68: enclose the copies in covers that carry, clearly and legibly, all jpayne@68: these Cover Texts: Front-Cover Texts on the front cover, and jpayne@68: Back-Cover Texts on the back cover. Both covers must also clearly jpayne@68: and legibly identify you as the publisher of these copies. The jpayne@68: front cover must present the full title with all words of the title jpayne@68: equally prominent and visible. You may add other material on the jpayne@68: covers in addition. Copying with changes limited to the covers, as jpayne@68: long as they preserve the title of the Document and satisfy these jpayne@68: conditions, can be treated as verbatim copying in other respects. jpayne@68: jpayne@68: If the required texts for either cover are too voluminous to fit jpayne@68: legibly, you should put the first ones listed (as many as fit jpayne@68: reasonably) on the actual cover, and continue the rest onto jpayne@68: adjacent pages. jpayne@68: jpayne@68: If you publish or distribute Opaque copies of the Document jpayne@68: numbering more than 100, you must either include a machine-readable jpayne@68: Transparent copy along with each Opaque copy, or state in or with jpayne@68: each Opaque copy a computer-network location from which the general jpayne@68: network-using public has access to download using public-standard jpayne@68: network protocols a complete Transparent copy of the Document, free jpayne@68: of added material. If you use the latter option, you must take jpayne@68: reasonably prudent steps, when you begin distribution of Opaque jpayne@68: copies in quantity, to ensure that this Transparent copy will jpayne@68: remain thus accessible at the stated location until at least one jpayne@68: year after the last time you distribute an Opaque copy (directly or jpayne@68: through your agents or retailers) of that edition to the public. jpayne@68: jpayne@68: It is requested, but not required, that you contact the authors of jpayne@68: the Document well before redistributing any large number of copies, jpayne@68: to give them a chance to provide you with an updated version of the jpayne@68: Document. jpayne@68: jpayne@68: 4. MODIFICATIONS jpayne@68: jpayne@68: You may copy and distribute a Modified Version of the Document jpayne@68: under the conditions of sections 2 and 3 above, provided that you jpayne@68: release the Modified Version under precisely this License, with the jpayne@68: Modified Version filling the role of the Document, thus licensing jpayne@68: distribution and modification of the Modified Version to whoever jpayne@68: possesses a copy of it. In addition, you must do these things in jpayne@68: the Modified Version: jpayne@68: jpayne@68: A. Use in the Title Page (and on the covers, if any) a title jpayne@68: distinct from that of the Document, and from those of previous jpayne@68: versions (which should, if there were any, be listed in the jpayne@68: History section of the Document). You may use the same title jpayne@68: as a previous version if the original publisher of that jpayne@68: version gives permission. jpayne@68: jpayne@68: B. List on the Title Page, as authors, one or more persons or jpayne@68: entities responsible for authorship of the modifications in jpayne@68: the Modified Version, together with at least five of the jpayne@68: principal authors of the Document (all of its principal jpayne@68: authors, if it has fewer than five), unless they release you jpayne@68: from this requirement. jpayne@68: jpayne@68: C. State on the Title page the name of the publisher of the jpayne@68: Modified Version, as the publisher. jpayne@68: jpayne@68: D. Preserve all the copyright notices of the Document. jpayne@68: jpayne@68: E. Add an appropriate copyright notice for your modifications jpayne@68: adjacent to the other copyright notices. jpayne@68: jpayne@68: F. Include, immediately after the copyright notices, a license jpayne@68: notice giving the public permission to use the Modified jpayne@68: Version under the terms of this License, in the form shown in jpayne@68: the Addendum below. jpayne@68: jpayne@68: G. Preserve in that license notice the full lists of Invariant jpayne@68: Sections and required Cover Texts given in the Document's jpayne@68: license notice. jpayne@68: jpayne@68: H. Include an unaltered copy of this License. jpayne@68: jpayne@68: I. Preserve the section Entitled "History", Preserve its Title, jpayne@68: and add to it an item stating at least the title, year, new jpayne@68: authors, and publisher of the Modified Version as given on the jpayne@68: Title Page. If there is no section Entitled "History" in the jpayne@68: Document, create one stating the title, year, authors, and jpayne@68: publisher of the Document as given on its Title Page, then add jpayne@68: an item describing the Modified Version as stated in the jpayne@68: previous sentence. jpayne@68: jpayne@68: J. Preserve the network location, if any, given in the Document jpayne@68: for public access to a Transparent copy of the Document, and jpayne@68: likewise the network locations given in the Document for jpayne@68: previous versions it was based on. These may be placed in the jpayne@68: "History" section. You may omit a network location for a work jpayne@68: that was published at least four years before the Document jpayne@68: itself, or if the original publisher of the version it refers jpayne@68: to gives permission. jpayne@68: jpayne@68: K. For any section Entitled "Acknowledgements" or "Dedications", jpayne@68: Preserve the Title of the section, and preserve in the section jpayne@68: all the substance and tone of each of the contributor jpayne@68: acknowledgements and/or dedications given therein. jpayne@68: jpayne@68: L. Preserve all the Invariant Sections of the Document, unaltered jpayne@68: in their text and in their titles. Section numbers or the jpayne@68: equivalent are not considered part of the section titles. jpayne@68: jpayne@68: M. Delete any section Entitled "Endorsements". Such a section jpayne@68: may not be included in the Modified Version. jpayne@68: jpayne@68: N. Do not retitle any existing section to be Entitled jpayne@68: "Endorsements" or to conflict in title with any Invariant jpayne@68: Section. jpayne@68: jpayne@68: O. Preserve any Warranty Disclaimers. jpayne@68: jpayne@68: If the Modified Version includes new front-matter sections or jpayne@68: appendices that qualify as Secondary Sections and contain no jpayne@68: material copied from the Document, you may at your option designate jpayne@68: some or all of these sections as invariant. To do this, add their jpayne@68: titles to the list of Invariant Sections in the Modified Version's jpayne@68: license notice. These titles must be distinct from any other jpayne@68: section titles. jpayne@68: jpayne@68: You may add a section Entitled "Endorsements", provided it contains jpayne@68: nothing but endorsements of your Modified Version by various jpayne@68: parties--for example, statements of peer review or that the text jpayne@68: has been approved by an organization as the authoritative jpayne@68: definition of a standard. jpayne@68: jpayne@68: You may add a passage of up to five words as a Front-Cover Text, jpayne@68: and a passage of up to 25 words as a Back-Cover Text, to the end of jpayne@68: the list of Cover Texts in the Modified Version. Only one passage jpayne@68: of Front-Cover Text and one of Back-Cover Text may be added by (or jpayne@68: through arrangements made by) any one entity. If the Document jpayne@68: already includes a cover text for the same cover, previously added jpayne@68: by you or by arrangement made by the same entity you are acting on jpayne@68: behalf of, you may not add another; but you may replace the old jpayne@68: one, on explicit permission from the previous publisher that added jpayne@68: the old one. jpayne@68: jpayne@68: The author(s) and publisher(s) of the Document do not by this jpayne@68: License give permission to use their names for publicity for or to jpayne@68: assert or imply endorsement of any Modified Version. jpayne@68: jpayne@68: 5. COMBINING DOCUMENTS jpayne@68: jpayne@68: You may combine the Document with other documents released under jpayne@68: this License, under the terms defined in section 4 above for jpayne@68: modified versions, provided that you include in the combination all jpayne@68: of the Invariant Sections of all of the original documents, jpayne@68: unmodified, and list them all as Invariant Sections of your jpayne@68: combined work in its license notice, and that you preserve all jpayne@68: their Warranty Disclaimers. jpayne@68: jpayne@68: The combined work need only contain one copy of this License, and jpayne@68: multiple identical Invariant Sections may be replaced with a single jpayne@68: copy. If there are multiple Invariant Sections with the same name jpayne@68: but different contents, make the title of each such section unique jpayne@68: by adding at the end of it, in parentheses, the name of the jpayne@68: original author or publisher of that section if known, or else a jpayne@68: unique number. Make the same adjustment to the section titles in jpayne@68: the list of Invariant Sections in the license notice of the jpayne@68: combined work. jpayne@68: jpayne@68: In the combination, you must combine any sections Entitled jpayne@68: "History" in the various original documents, forming one section jpayne@68: Entitled "History"; likewise combine any sections Entitled jpayne@68: "Acknowledgements", and any sections Entitled "Dedications". You jpayne@68: must delete all sections Entitled "Endorsements." jpayne@68: jpayne@68: 6. COLLECTIONS OF DOCUMENTS jpayne@68: jpayne@68: You may make a collection consisting of the Document and other jpayne@68: documents released under this License, and replace the individual jpayne@68: copies of this License in the various documents with a single copy jpayne@68: that is included in the collection, provided that you follow the jpayne@68: rules of this License for verbatim copying of each of the documents jpayne@68: in all other respects. jpayne@68: jpayne@68: You may extract a single document from such a collection, and jpayne@68: distribute it individually under this License, provided you insert jpayne@68: a copy of this License into the extracted document, and follow this jpayne@68: License in all other respects regarding verbatim copying of that jpayne@68: document. jpayne@68: jpayne@68: 7. AGGREGATION WITH INDEPENDENT WORKS jpayne@68: jpayne@68: A compilation of the Document or its derivatives with other jpayne@68: separate and independent documents or works, in or on a volume of a jpayne@68: storage or distribution medium, is called an "aggregate" if the jpayne@68: copyright resulting from the compilation is not used to limit the jpayne@68: legal rights of the compilation's users beyond what the individual jpayne@68: works permit. When the Document is included in an aggregate, this jpayne@68: License does not apply to the other works in the aggregate which jpayne@68: are not themselves derivative works of the Document. jpayne@68: jpayne@68: If the Cover Text requirement of section 3 is applicable to these jpayne@68: copies of the Document, then if the Document is less than one half jpayne@68: of the entire aggregate, the Document's Cover Texts may be placed jpayne@68: on covers that bracket the Document within the aggregate, or the jpayne@68: electronic equivalent of covers if the Document is in electronic jpayne@68: form. Otherwise they must appear on printed covers that bracket jpayne@68: the whole aggregate. jpayne@68: jpayne@68: 8. TRANSLATION jpayne@68: jpayne@68: Translation is considered a kind of modification, so you may jpayne@68: distribute translations of the Document under the terms of section jpayne@68: 4. Replacing Invariant Sections with translations requires special jpayne@68: permission from their copyright holders, but you may include jpayne@68: translations of some or all Invariant Sections in addition to the jpayne@68: original versions of these Invariant Sections. You may include a jpayne@68: translation of this License, and all the license notices in the jpayne@68: Document, and any Warranty Disclaimers, provided that you also jpayne@68: include the original English version of this License and the jpayne@68: original versions of those notices and disclaimers. In case of a jpayne@68: disagreement between the translation and the original version of jpayne@68: this License or a notice or disclaimer, the original version will jpayne@68: prevail. jpayne@68: jpayne@68: If a section in the Document is Entitled "Acknowledgements", jpayne@68: "Dedications", or "History", the requirement (section 4) to jpayne@68: Preserve its Title (section 1) will typically require changing the jpayne@68: actual title. jpayne@68: jpayne@68: 9. TERMINATION jpayne@68: jpayne@68: You may not copy, modify, sublicense, or distribute the Document jpayne@68: except as expressly provided under this License. Any attempt jpayne@68: otherwise to copy, modify, sublicense, or distribute it is void, jpayne@68: and will automatically terminate your rights under this License. jpayne@68: jpayne@68: However, if you cease all violation of this License, then your jpayne@68: license from a particular copyright holder is reinstated (a) jpayne@68: provisionally, unless and until the copyright holder explicitly and jpayne@68: finally terminates your license, and (b) permanently, if the jpayne@68: copyright holder fails to notify you of the violation by some jpayne@68: reasonable means prior to 60 days after the cessation. jpayne@68: jpayne@68: Moreover, your license from a particular copyright holder is jpayne@68: reinstated permanently if the copyright holder notifies you of the jpayne@68: violation by some reasonable means, this is the first time you have jpayne@68: received notice of violation of this License (for any work) from jpayne@68: that copyright holder, and you cure the violation prior to 30 days jpayne@68: after your receipt of the notice. jpayne@68: jpayne@68: Termination of your rights under this section does not terminate jpayne@68: the licenses of parties who have received copies or rights from you jpayne@68: under this License. If your rights have been terminated and not jpayne@68: permanently reinstated, receipt of a copy of some or all of the jpayne@68: same material does not give you any rights to use it. jpayne@68: jpayne@68: 10. FUTURE REVISIONS OF THIS LICENSE jpayne@68: jpayne@68: The Free Software Foundation may publish new, revised versions of jpayne@68: the GNU Free Documentation License from time to time. Such new jpayne@68: versions will be similar in spirit to the present version, but may jpayne@68: differ in detail to address new problems or concerns. See jpayne@68: . jpayne@68: jpayne@68: Each version of the License is given a distinguishing version jpayne@68: number. If the Document specifies that a particular numbered jpayne@68: version of this License "or any later version" applies to it, you jpayne@68: have the option of following the terms and conditions either of jpayne@68: that specified version or of any later version that has been jpayne@68: published (not as a draft) by the Free Software Foundation. If the jpayne@68: Document does not specify a version number of this License, you may jpayne@68: choose any version ever published (not as a draft) by the Free jpayne@68: Software Foundation. If the Document specifies that a proxy can jpayne@68: decide which future versions of this License can be used, that jpayne@68: proxy's public statement of acceptance of a version permanently jpayne@68: authorizes you to choose that version for the Document. jpayne@68: jpayne@68: 11. RELICENSING jpayne@68: jpayne@68: "Massive Multiauthor Collaboration Site" (or "MMC Site") means any jpayne@68: World Wide Web server that publishes copyrightable works and also jpayne@68: provides prominent facilities for anybody to edit those works. A jpayne@68: public wiki that anybody can edit is an example of such a server. jpayne@68: A "Massive Multiauthor Collaboration" (or "MMC") contained in the jpayne@68: site means any set of copyrightable works thus published on the MMC jpayne@68: site. jpayne@68: jpayne@68: "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 jpayne@68: license published by Creative Commons Corporation, a not-for-profit jpayne@68: corporation with a principal place of business in San Francisco, jpayne@68: California, as well as future copyleft versions of that license jpayne@68: published by that same organization. jpayne@68: jpayne@68: "Incorporate" means to publish or republish a Document, in whole or jpayne@68: in part, as part of another Document. jpayne@68: jpayne@68: An MMC is "eligible for relicensing" if it is licensed under this jpayne@68: License, and if all works that were first published under this jpayne@68: License somewhere other than this MMC, and subsequently jpayne@68: incorporated in whole or in part into the MMC, (1) had no cover jpayne@68: texts or invariant sections, and (2) were thus incorporated prior jpayne@68: to November 1, 2008. jpayne@68: jpayne@68: The operator of an MMC Site may republish an MMC contained in the jpayne@68: site under CC-BY-SA on the same site at any time before August 1, jpayne@68: 2009, provided the MMC is eligible for relicensing. jpayne@68: jpayne@68: ADDENDUM: How to use this License for your documents jpayne@68: ==================================================== jpayne@68: jpayne@68: To use this License in a document you have written, include a copy of jpayne@68: the License in the document and put the following copyright and license jpayne@68: notices just after the title page: jpayne@68: jpayne@68: Copyright (C) YEAR YOUR NAME. jpayne@68: Permission is granted to copy, distribute and/or modify this document jpayne@68: under the terms of the GNU Free Documentation License, Version 1.3 jpayne@68: or any later version published by the Free Software Foundation; jpayne@68: with no Invariant Sections, no Front-Cover Texts, and no Back-Cover jpayne@68: Texts. A copy of the license is included in the section entitled ``GNU jpayne@68: Free Documentation License''. jpayne@68: jpayne@68: If you have Invariant Sections, Front-Cover Texts and Back-Cover jpayne@68: Texts, replace the "with...Texts." line with this: jpayne@68: jpayne@68: with the Invariant Sections being LIST THEIR TITLES, with jpayne@68: the Front-Cover Texts being LIST, and with the Back-Cover Texts jpayne@68: being LIST. jpayne@68: jpayne@68: If you have Invariant Sections without Cover Texts, or some other jpayne@68: combination of the three, merge those two alternatives to suit the jpayne@68: situation. jpayne@68: jpayne@68: If your document contains nontrivial examples of program code, we jpayne@68: recommend releasing these examples in parallel under your choice of free jpayne@68: software license, such as the GNU General Public License, to permit jpayne@68: their use in free software. jpayne@68: jpayne@68: jpayne@68:  jpayne@68: Tag Table: jpayne@68: Node: Top909 jpayne@68: Node: Command Line Editing1431 jpayne@68: Node: Introduction and Notation2085 jpayne@68: Node: Readline Interaction3710 jpayne@68: Node: Readline Bare Essentials4903 jpayne@68: Node: Readline Movement Commands6694 jpayne@68: Node: Readline Killing Commands7656 jpayne@68: Node: Readline Arguments9579 jpayne@68: Node: Searching10625 jpayne@68: Node: Readline Init File12779 jpayne@68: Node: Readline Init File Syntax13936 jpayne@68: Node: Conditional Init Constructs37240 jpayne@68: Node: Sample Init File41438 jpayne@68: Node: Bindable Readline Commands44564 jpayne@68: Node: Commands For Moving45620 jpayne@68: Node: Commands For History47380 jpayne@68: Node: Commands For Text52345 jpayne@68: Node: Commands For Killing56049 jpayne@68: Node: Numeric Arguments58764 jpayne@68: Node: Commands For Completion59905 jpayne@68: Node: Keyboard Macros61875 jpayne@68: Node: Miscellaneous Commands62565 jpayne@68: Node: Readline vi Mode66494 jpayne@68: Node: GNU Free Documentation License67408 jpayne@68:  jpayne@68: End Tag Table jpayne@68: jpayne@68:  jpayne@68: Local Variables: jpayne@68: coding: utf-8 jpayne@68: End: