diff options
Diffstat (limited to '')
-rw-r--r-- | doc/readline.0 | 1130 |
1 files changed, 1130 insertions, 0 deletions
diff --git a/doc/readline.0 b/doc/readline.0 new file mode 100644 index 0000000..d32329b --- /dev/null +++ b/doc/readline.0 @@ -0,0 +1,1130 @@ +READLINE(3) Library Functions Manual READLINE(3) + + + +[1mNAME[0m + readline - get a line from a user with editing + +[1mSYNOPSIS[0m + [1m#include <stdio.h>[0m + [1m#include <readline/readline.h>[0m + [1m#include <readline/history.h>[0m + + [4mchar[24m [4m*[0m + [1mreadline [22m([4mconst[24m [4mchar[24m [4m*prompt[24m); + +[1mCOPYRIGHT[0m + Readline is Copyright (C) 1989-2020 Free Software Foundation, Inc. + +[1mDESCRIPTION[0m + [1mreadline [22mwill read a line from the terminal and return it, using [1mprompt[0m + as a prompt. If [1mprompt [22mis [1mNULL [22mor the empty string, no prompt is is- + sued. The line returned is allocated with [4mmalloc[24m(3); the caller must + free it when finished. The line returned has the final newline re- + moved, so only the text of the line remains. + + [1mreadline [22moffers editing capabilities while the user is entering the + line. By default, the line editing commands are similar to those of + emacs. A vi-style line editing interface is also available. + + This manual page describes only the most basic use of [1mreadline[22m. Much + more functionality is available; see [4mThe[24m [4mGNU[24m [4mReadline[24m [4mLibrary[24m and [4mThe[0m + [4mGNU[24m [4mHistory[24m [4mLibrary[24m for additional information. + +[1mRETURN VALUE[0m + [1mreadline [22mreturns the text of the line read. A blank line returns the + empty string. If [1mEOF [22mis encountered while reading a line, and the line + is empty, [1mNULL [22mis returned. If an [1mEOF [22mis read with a non-empty line, + it is treated as a newline. + +[1mNOTATION[0m + An Emacs-style notation is used to denote keystrokes. Control keys are + denoted by C-[4mkey[24m, e.g., C-n means Control-N. Similarly, [4mmeta[24m keys are + denoted by M-[4mkey[24m, so M-x means Meta-X. (On keyboards without a [4mmeta[0m + key, M-[4mx[24m means ESC [4mx[24m, i.e., press the Escape key then the [4mx[24m key. This + makes ESC the [4mmeta[24m [4mprefix[24m. The combination M-C-[4mx[24m means ESC-Control-[4mx[24m, + or press the Escape key then hold the Control key while pressing the [4mx[0m + key.) + + Readline commands may be given numeric [4marguments[24m, which normally act as + a repeat count. Sometimes, however, it is the sign of the argument + that is significant. Passing a negative argument to a command that + acts in the forward direction (e.g., [1mkill-line[22m) causes that command to + act in a backward direction. Commands whose behavior with arguments + deviates from this are noted below. + + When a command is described as [4mkilling[24m text, the text deleted is saved + for possible future retrieval ([4myanking[24m). The killed text is saved in a + [4mkill[24m [4mring[24m. Consecutive kills cause the text to be accumulated into one + unit, which can be yanked all at once. Commands which do not kill text + separate the chunks of text on the kill ring. + +[1mINITIALIZATION FILE[0m + Readline is customized by putting commands in an initialization file + (the [4minputrc[24m file). The name of this file is taken from the value of + the [1mINPUTRC [22menvironment variable. If that variable is unset, the de- + fault is [4m~/.inputrc[24m. If that file does not exist or cannot be read, + the ultimate default is [4m/etc/inputrc[24m. When a program which uses the + readline library starts up, the init file is read, and the key bindings + and variables are set. There are only a few basic constructs allowed + in the readline init file. Blank lines are ignored. Lines beginning + with a [1m# [22mare comments. Lines beginning with a [1m$ [22mindicate conditional + constructs. Other lines denote key bindings and variable settings. + Each program using this library may add its own commands and bindings. + + For example, placing + + M-Control-u: universal-argument + or + C-Meta-u: universal-argument + + into the [4minputrc[24m would make M-C-u execute the readline command [4muniver-[0m + [4msal-argument[24m. + + The following symbolic character names are recognized while processing + key bindings: [4mDEL[24m, [4mESC[24m, [4mESCAPE[24m, [4mLFD[24m, [4mNEWLINE[24m, [4mRET[24m, [4mRETURN[24m, [4mRUBOUT[24m, + [4mSPACE[24m, [4mSPC[24m, and [4mTAB[24m. + + In addition to command names, readline allows keys to be bound to a + string that is inserted when the key is pressed (a [4mmacro[24m). + + [1mKey Bindings[0m + The syntax for controlling key bindings in the [4minputrc[24m file is simple. + All that is required is the name of the command or the text of a macro + and a key sequence to which it should be bound. The name may be speci- + fied in one of two ways: as a symbolic key name, possibly with [4mMeta-[24m or + [4mControl-[24m prefixes, or as a key sequence. The name and key sequence are + separated by a colon. There can be no whitespace between the name and + the colon. + + When using the form [1mkeyname[22m:[4mfunction-name[24m or [4mmacro[24m, [4mkeyname[24m is the name + of a key spelled out in English. For example: + + Control-u: universal-argument + Meta-Rubout: backward-kill-word + Control-o: "> output" + + In the above example, [4mC-u[24m is bound to the function [1muniversal-argument[22m, + [4mM-DEL[24m is bound to the function [1mbackward-kill-word[22m, and [4mC-o[24m is bound to + run the macro expressed on the right hand side (that is, to insert the + text ``> output'' into the line). + + In the second form, [1m"keyseq"[22m:[4mfunction-name[24m or [4mmacro[24m, [1mkeyseq [22mdiffers + from [1mkeyname [22mabove in that strings denoting an entire key sequence may + be specified by placing the sequence within double quotes. Some GNU + Emacs style key escapes can be used, as in the following example, but + the symbolic character names are not recognized. + + "\C-u": universal-argument + "\C-x\C-r": re-read-init-file + "\e[11~": "Function Key 1" + + In this example, [4mC-u[24m is again bound to the function [1muniversal-argument[22m. + [4mC-x[24m [4mC-r[24m is bound to the function [1mre-read-init-file[22m, and [4mESC[24m [4m[[24m [4m1[24m [4m1[24m [4m~[24m is + bound to insert the text ``Function Key 1''. + + The full set of GNU Emacs style escape sequences available when speci- + fying key sequences is + [1m\C- [22mcontrol prefix + [1m\M- [22mmeta prefix + [1m\e [22man escape character + [1m\\ [22mbackslash + [1m\" [22mliteral ", a double quote + [1m\' [22mliteral ', a single quote + + In addition to the GNU Emacs style escape sequences, a second set of + backslash escapes is available: + [1m\a [22malert (bell) + [1m\b [22mbackspace + [1m\d [22mdelete + [1m\f [22mform feed + [1m\n [22mnewline + [1m\r [22mcarriage return + [1m\t [22mhorizontal tab + [1m\v [22mvertical tab + [1m\[4m[22mnnn[24m the eight-bit character whose value is the octal value + [4mnnn[24m (one to three digits) + [1m\x[4m[22mHH[24m the eight-bit character whose value is the hexadecimal + value [4mHH[24m (one or two hex digits) + + When entering the text of a macro, single or double quotes should be + used to indicate a macro definition. Unquoted text is assumed to be a + function name. In the macro body, the backslash escapes described + above are expanded. Backslash will quote any other character in the + macro text, including " and '. + + [1mBash [22mallows the current readline key bindings to be displayed or modi- + fied with the [1mbind [22mbuiltin command. The editing mode may be switched + during interactive use by using the [1m-o [22moption to the [1mset [22mbuiltin com- + mand. Other programs using this library provide similar mechanisms. + The [4minputrc[24m file may be edited and re-read if a program does not pro- + vide any other means to incorporate new bindings. + + [1mVariables[0m + Readline has variables that can be used to further customize its behav- + ior. A variable may be set in the [4minputrc[24m file with a statement of the + form + + [1mset [4m[22mvariable-name[24m [4mvalue[0m + + Except where noted, readline variables can take the values [1mOn [22mor [1mOff[0m + (without regard to case). Unrecognized variable names are ignored. + When a variable value is read, empty or null values, "on" (case-insen- + sitive), and "1" are equivalent to [1mOn[22m. All other values are equivalent + to [1mOff[22m. The variables and their default values are: + + [1mbell-style (audible)[0m + Controls what happens when readline wants to ring the terminal + bell. If set to [1mnone[22m, readline never rings the bell. If set to + [1mvisible[22m, readline uses a visible bell if one is available. If + set to [1maudible[22m, readline attempts to ring the terminal's bell. + [1mbind-tty-special-chars (On)[0m + If set to [1mOn [22m(the default), readline attempts to bind the con- + trol characters treated specially by the kernel's terminal + driver to their readline equivalents. + [1mblink-matching-paren (Off)[0m + If set to [1mOn[22m, readline attempts to briefly move the cursor to an + opening parenthesis when a closing parenthesis is inserted. + [1mcolored-completion-prefix (Off)[0m + If set to [1mOn[22m, when listing completions, readline displays the + common prefix of the set of possible completions using a differ- + ent color. The color definitions are taken from the value of + the [1mLS_COLORS [22menvironment variable. + [1mcolored-stats (Off)[0m + If set to [1mOn[22m, readline displays possible completions using dif- + ferent colors to indicate their file type. The color defini- + tions are taken from the value of the [1mLS_COLORS [22menvironment + variable. + [1mcomment-begin (``#'')[0m + The string that is inserted in [1mvi [22mmode when the [1minsert-comment[0m + command is executed. This command is bound to [1mM-# [22min emacs mode + and to [1m# [22min vi command mode. + [1mcompletion-display-width (-1)[0m + The number of screen columns used to display possible matches + when performing completion. The value is ignored if it is less + than 0 or greater than the terminal screen width. A value of 0 + will cause matches to be displayed one per line. The default + value is -1. + [1mcompletion-ignore-case (Off)[0m + If set to [1mOn[22m, readline performs filename matching and completion + in a case-insensitive fashion. + [1mcompletion-map-case (Off)[0m + If set to [1mOn[22m, and [1mcompletion-ignore-case [22mis enabled, readline + treats hyphens ([4m-[24m) and underscores ([4m_[24m) as equivalent when per- + forming case-insensitive filename matching and completion. + [1mcompletion-prefix-display-length (0)[0m + The length in characters of the common prefix of a list of pos- + sible completions that is displayed without modification. When + set to a value greater than zero, common prefixes longer than + this value are replaced with an ellipsis when displaying possi- + ble completions. + [1mcompletion-query-items (100)[0m + This determines when the user is queried about viewing the num- + ber of possible completions generated by the [1mpossible-comple-[0m + [1mtions [22mcommand. It may be set to any integer value greater than + or equal to zero. If the number of possible completions is + greater than or equal to the value of this variable, readline + will ask whether or not the user wishes to view them; otherwise + they are simply listed on the terminal. A negative value causes + readline to never ask. + [1mconvert-meta (On)[0m + If set to [1mOn[22m, readline will convert characters with the eighth + bit set to an ASCII key sequence by stripping the eighth bit and + prefixing it with an escape character (in effect, using escape + as the [4mmeta[24m [4mprefix[24m). The default is [4mOn[24m, but readline will set + it to [4mOff[24m if the locale contains eight-bit characters. + [1mdisable-completion (Off)[0m + If set to [1mOn[22m, readline will inhibit word completion. Completion + characters will be inserted into the line as if they had been + mapped to [1mself-insert[22m. + [1mecho-control-characters (On)[0m + When set to [1mOn[22m, on operating systems that indicate they support + it, readline echoes a character corresponding to a signal gener- + ated from the keyboard. + [1mediting-mode (emacs)[0m + Controls whether readline begins with a set of key bindings sim- + ilar to [4mEmacs[24m or [4mvi[24m. [1mediting-mode [22mcan be set to either [1memacs [22mor + [1mvi[22m. + [1memacs-mode-string (@)[0m + If the [4mshow-mode-in-prompt[24m variable is enabled, this string is + displayed immediately before the last line of the primary prompt + when emacs editing mode is active. The value is expanded like a + key binding, so the standard set of meta- and control prefixes + and backslash escape sequences is available. Use the \1 and \2 + escapes to begin and end sequences of non-printing characters, + which can be used to embed a terminal control sequence into the + mode string. + [1menable-bracketed-paste (On)[0m + When set to [1mOn[22m, readline will configure the terminal in a way + that will enable it to insert each paste into the editing buffer + as a single string of characters, instead of treating each char- + acter as if it had been read from the keyboard. This can pre- + vent pasted characters from being interpreted as editing com- + mands. + [1menable-keypad (Off)[0m + When set to [1mOn[22m, readline will try to enable the application key- + pad when it is called. Some systems need this to enable the ar- + row keys. + [1menable-meta-key (On)[0m + When set to [1mOn[22m, readline will try to enable any meta modifier + key the terminal claims to support when it is called. On many + terminals, the meta key is used to send eight-bit characters. + [1mexpand-tilde (Off)[0m + If set to [1mOn[22m, tilde expansion is performed when readline at- + tempts word completion. + [1mhistory-preserve-point (Off)[0m + If set to [1mOn[22m, the history code attempts to place point at the + same location on each history line retrieved with [1mprevious-his-[0m + [1mtory [22mor [1mnext-history[22m. + [1mhistory-size (unset)[0m + Set the maximum number of history entries saved in the history + list. If set to zero, any existing history entries are deleted + and no new entries are saved. If set to a value less than zero, + the number of history entries is not limited. By default, the + number of history entries is not limited. If an attempt is made + to set [4mhistory-size[24m to a non-numeric value, the maximum number + of history entries will be set to 500. + [1mhorizontal-scroll-mode (Off)[0m + When set to [1mOn[22m, makes readline use a single line for display, + scrolling the input horizontally on a single screen line when it + becomes longer than the screen width rather than wrapping to a + new line. This setting is automatically enabled for terminals + of height 1. + [1minput-meta (Off)[0m + If set to [1mOn[22m, readline will enable eight-bit input (that is, it + will not clear the eighth bit in the characters it reads), re- + gardless of what the terminal claims it can support. The name + [1mmeta-flag [22mis a synonym for this variable. The default is [4mOff[24m, + but readline will set it to [4mOn[24m if the locale contains eight-bit + characters. + [1misearch-terminators (``C-[ C-J'')[0m + The string of characters that should terminate an incremental + search without subsequently executing the character as a com- + mand. If this variable has not been given a value, the charac- + ters [4mESC[24m and [4mC-J[24m will terminate an incremental search. + [1mkeymap (emacs)[0m + Set the current readline keymap. The set of legal keymap names + is [4memacs,[24m [4memacs-standard,[24m [4memacs-meta,[24m [4memacs-ctlx,[24m [4mvi,[24m [4mvi-move,[0m + [4mvi-command[24m, and [4mvi-insert[24m. [4mvi[24m is equivalent to [4mvi-command[24m; + [4memacs[24m is equivalent to [4memacs-standard[24m. The default value is + [4memacs[24m. The value of [1mediting-mode [22malso affects the default + keymap. + [1mkeyseq-timeout (500)[0m + Specifies the duration [4mreadline[24m will wait for a character when + reading an ambiguous key sequence (one that can form a complete + key sequence using the input read so far, or can take additional + input to complete a longer key sequence). If no input is re- + ceived within the timeout, [4mreadline[24m will use the shorter but + complete key sequence. The value is specified in milliseconds, + so a value of 1000 means that [4mreadline[24m will wait one second for + additional input. If this variable is set to a value less than + or equal to zero, or to a non-numeric value, [4mreadline[24m will wait + until another key is pressed to decide which key sequence to + complete. + [1mmark-directories (On)[0m + If set to [1mOn[22m, completed directory names have a slash appended. + [1mmark-modified-lines (Off)[0m + If set to [1mOn[22m, history lines that have been modified are dis- + played with a preceding asterisk ([1m*[22m). + [1mmark-symlinked-directories (Off)[0m + If set to [1mOn[22m, completed names which are symbolic links to direc- + tories have a slash appended (subject to the value of [1mmark-di-[0m + [1mrectories[22m). + [1mmatch-hidden-files (On)[0m + This variable, when set to [1mOn[22m, causes readline to match files + whose names begin with a `.' (hidden files) when performing + filename completion. If set to [1mOff[22m, the leading `.' must be + supplied by the user in the filename to be completed. + [1mmenu-complete-display-prefix (Off)[0m + If set to [1mOn[22m, menu completion displays the common prefix of the + list of possible completions (which may be empty) before cycling + through the list. + [1moutput-meta (Off)[0m + If set to [1mOn[22m, readline will display characters with the eighth + bit set directly rather than as a meta-prefixed escape sequence. + The default is [4mOff[24m, but readline will set it to [4mOn[24m if the locale + contains eight-bit characters. + [1mpage-completions (On)[0m + If set to [1mOn[22m, readline uses an internal [4mmore[24m-like pager to dis- + play a screenful of possible completions at a time. + [1mprint-completions-horizontally (Off)[0m + If set to [1mOn[22m, readline will display completions with matches + sorted horizontally in alphabetical order, rather than down the + screen. + [1mrevert-all-at-newline (Off)[0m + If set to [1mOn[22m, readline will undo all changes to history lines + before returning when [1maccept-line [22mis executed. By default, his- + tory lines may be modified and retain individual undo lists + across calls to [1mreadline[22m. + [1mshow-all-if-ambiguous (Off)[0m + This alters the default behavior of the completion functions. + If set to [1mOn[22m, words which have more than one possible completion + cause the matches to be listed immediately instead of ringing + the bell. + [1mshow-all-if-unmodified (Off)[0m + This alters the default behavior of the completion functions in + a fashion similar to [1mshow-all-if-ambiguous[22m. If set to [1mOn[22m, words + which have more than one possible completion without any possi- + ble partial completion (the possible completions don't share a + common prefix) cause the matches to be listed immediately in- + stead of ringing the bell. + [1mshow-mode-in-prompt (Off)[0m + If set to [1mOn[22m, add a string to the beginning of the prompt indi- + cating the editing mode: emacs, vi command, or vi insertion. + The mode strings are user-settable (e.g., [4memacs-mode-string[24m). + [1mskip-completed-text (Off)[0m + If set to [1mOn[22m, this alters the default completion behavior when + inserting a single match into the line. It's only active when + performing completion in the middle of a word. If enabled, + readline does not insert characters from the completion that + match characters after point in the word being completed, so + portions of the word following the cursor are not duplicated. + [1mvi-cmd-mode-string ((cmd))[0m + If the [4mshow-mode-in-prompt[24m variable is enabled, this string is + displayed immediately before the last line of the primary prompt + when vi editing mode is active and in command mode. The value + is expanded like a key binding, so the standard set of meta- and + control prefixes and backslash escape sequences is available. + Use the \1 and \2 escapes to begin and end sequences of non- + printing characters, which can be used to embed a terminal con- + trol sequence into the mode string. + [1mvi-ins-mode-string ((ins))[0m + If the [4mshow-mode-in-prompt[24m variable is enabled, this string is + displayed immediately before the last line of the primary prompt + when vi editing mode is active and in insertion mode. The value + is expanded like a key binding, so the standard set of meta- and + control prefixes and backslash escape sequences is available. + Use the \1 and \2 escapes to begin and end sequences of non- + printing characters, which can be used to embed a terminal con- + trol sequence into the mode string. + [1mvisible-stats (Off)[0m + If set to [1mOn[22m, a character denoting a file's type as reported by + [4mstat[24m(2) is appended to the filename when listing possible com- + pletions. + + [1mConditional Constructs[0m + Readline implements a facility similar in spirit to the conditional + compilation features of the C preprocessor which allows key bindings + and variable settings to be performed as the result of tests. There + are four parser directives used. + + [1m$if [22mThe [1m$if [22mconstruct allows bindings to be made based on the edit- + ing mode, the terminal being used, or the application using + readline. The text of the test, after any comparison operator, + extends to the end of the line; unless otherwise noted, no char- + acters are required to isolate it. + + [1mmode [22mThe [1mmode= [22mform of the [1m$if [22mdirective is used to test + whether readline is in emacs or vi mode. This may be + used in conjunction with the [1mset keymap [22mcommand, for in- + stance, to set bindings in the [4memacs-standard[24m and [4memacs-[0m + [4mctlx[24m keymaps only if readline is starting out in emacs + mode. + + [1mterm [22mThe [1mterm= [22mform may be used to include terminal-specific + key bindings, perhaps to bind the key sequences output by + the terminal's function keys. The word on the right side + of the [1m= [22mis tested against the full name of the terminal + and the portion of the terminal name before the first [1m-[22m. + This allows [4msun[24m to match both [4msun[24m and [4msun-cmd[24m, for in- + stance. + + [1mversion[0m + The [1mversion [22mtest may be used to perform comparisons + against specific readline versions. The [1mversion [22mexpands + to the current readline version. The set of comparison + operators includes [1m=[22m, (and [1m==[22m), [1m!=[22m, [1m<=[22m, [1m>=[22m, [1m<[22m, and [1m>[22m. + The version number supplied on the right side of the op- + erator consists of a major version number, an optional + decimal point, and an optional minor version (e.g., [1m7.1[22m). + If the minor version is omitted, it is assumed to be [1m0[22m. + The operator may be separated from the string [1mversion [22mand + from the version number argument by whitespace. + + [1mapplication[0m + The [1mapplication [22mconstruct is used to include application- + specific settings. Each program using the readline li- + brary sets the [4mapplication[24m [4mname[24m, and an initialization + file can test for a particular value. This could be used + to bind key sequences to functions useful for a specific + program. For instance, the following command adds a key + sequence that quotes the current or previous word in + [1mbash[22m: + + [1m$if [22mBash + # Quote the current or previous word + "\C-xq": "\eb\"\ef\"" + [1m$endif[0m + + [4mvariable[0m + The [4mvariable[24m construct provides simple equality tests for + readline variables and values. The permitted comparison + operators are [4m=[24m, [4m==[24m, and [4m!=[24m. The variable name must be + separated from the comparison operator by whitespace; the + operator may be separated from the value on the right + hand side by whitespace. Both string and boolean vari- + ables may be tested. Boolean variables must be tested + against the values [4mon[24m and [4moff[24m. + + [1m$endif [22mThis command, as seen in the previous example, terminates an [1m$if[0m + command. + + [1m$else [22mCommands in this branch of the [1m$if [22mdirective are executed if the + test fails. + + [1m$include[0m + This directive takes a single filename as an argument and reads + commands and bindings from that file. For example, the follow- + ing directive would read [4m/etc/inputrc[24m: + + [1m$include [4m[22m/etc/inputrc[0m + +[1mSEARCHING[0m + Readline provides commands for searching through the command history + for lines containing a specified string. There are two search modes: + [4mincremental[24m and [4mnon-incremental[24m. + + Incremental searches begin before the user has finished typing the + search string. As each character of the search string is typed, read- + line displays the next entry from the history matching the string typed + so far. An incremental search requires only as many characters as + needed to find the desired history entry. To search backward in the + history for a particular string, type [1mC-r[22m. Typing [1mC-s [22msearches forward + through the history. The characters present in the value of the + [1misearch-terminators [22mvariable are used to terminate an incremental + search. If that variable has not been assigned a value the [4mEscape[24m and + [1mC-J [22mcharacters will terminate an incremental search. [1mC-G [22mwill abort an + incremental search and restore the original line. When the search is + terminated, the history entry containing the search string becomes the + current line. + + To find other matching entries in the history list, type [1mC-s [22mor [1mC-r [22mas + appropriate. This will search backward or forward in the history for + the next line matching the search string typed so far. Any other key + sequence bound to a readline command will terminate the search and exe- + cute that command. For instance, a newline will terminate the search + and accept the line, thereby executing the command from the history + list. A movement command will terminate the search, make the last line + found the current line, and begin editing. + + Non-incremental searches read the entire search string before starting + to search for matching history lines. The search string may be typed + by the user or be part of the contents of the current line. + +[1mEDITING COMMANDS[0m + The following is a list of the names of the commands and the default + key sequences to which they are bound. Command names without an accom- + panying key sequence are unbound by default. + + In the following descriptions, [4mpoint[24m refers to the current cursor posi- + tion, and [4mmark[24m refers to a cursor position saved by the [1mset-mark [22mcom- + mand. The text between the point and mark is referred to as the [4mre-[0m + [4mgion[24m. + + [1mCommands for Moving[0m + [1mbeginning-of-line (C-a)[0m + Move to the start of the current line. + [1mend-of-line (C-e)[0m + Move to the end of the line. + [1mforward-char (C-f)[0m + Move forward a character. + [1mbackward-char (C-b)[0m + Move back a character. + [1mforward-word (M-f)[0m + Move forward to the end of the next word. Words are composed of + alphanumeric characters (letters and digits). + [1mbackward-word (M-b)[0m + Move back to the start of the current or previous word. Words + are composed of alphanumeric characters (letters and digits). + [1mprevious-screen-line[0m + Attempt to move point to the same physical screen column on the + previous physical screen line. This will not have the desired + effect if the current Readline line does not take up more than + one physical line or if point is not greater than the length of + the prompt plus the screen width. + [1mnext-screen-line[0m + Attempt to move point to the same physical screen column on the + next physical screen line. This will not have the desired effect + if the current Readline line does not take up more than one + physical line or if the length of the current Readline line is + not greater than the length of the prompt plus the screen width. + [1mclear-display (M-C-l)[0m + Clear the screen and, if possible, the terminal's scrollback + buffer, then redraw the current line, leaving the current line + at the top of the screen. + [1mclear-screen (C-l)[0m + Clear the screen, then redraw the current line, leaving the cur- + rent line at the top of the screen. With an argument, refresh + the current line without clearing the screen. + [1mredraw-current-line[0m + Refresh the current line. + + [1mCommands for Manipulating the History[0m + [1maccept-line (Newline, Return)[0m + Accept the line regardless of where the cursor is. If this line + is non-empty, it may be added to the history list for future re- + call with [1madd_history()[22m. If the line is a modified history + line, the history line is restored to its original state. + [1mprevious-history (C-p)[0m + Fetch the previous command from the history list, moving back in + the list. + [1mnext-history (C-n)[0m + Fetch the next command from the history list, moving forward in + the list. + [1mbeginning-of-history (M-<)[0m + Move to the first line in the history. + [1mend-of-history (M->)[0m + Move to the end of the input history, i.e., the line currently + being entered. + [1mreverse-search-history (C-r)[0m + Search backward starting at the current line and moving `up' + through the history as necessary. This is an incremental + search. + [1mforward-search-history (C-s)[0m + Search forward starting at the current line and moving `down' + through the history as necessary. This is an incremental + search. + [1mnon-incremental-reverse-search-history (M-p)[0m + Search backward through the history starting at the current line + using a non-incremental search for a string supplied by the + user. + [1mnon-incremental-forward-search-history (M-n)[0m + Search forward through the history using a non-incremental + search for a string supplied by the user. + [1mhistory-search-backward[0m + Search backward through the history for the string of characters + between the start of the current line and the current cursor po- + sition (the [4mpoint[24m). The search string must match at the begin- + ning of a history line. This is a non-incremental search. + [1mhistory-search-forward[0m + Search forward through the history for the string of characters + between the start of the current line and the point. The search + string must match at the beginning of a history line. This is a + non-incremental search. + [1mhistory-substring-search-backward[0m + Search backward through the history for the string of characters + between the start of the current line and the current cursor po- + sition (the [4mpoint[24m). The search string may match anywhere in a + history line. This is a non-incremental search. + [1mhistory-substring-search-forward[0m + Search forward through the history for the string of characters + between the start of the current line and the point. The search + string may match anywhere in a history line. This is a non-in- + cremental search. + [1myank-nth-arg (M-C-y)[0m + Insert the first argument to the previous command (usually the + second word on the previous line) at point. With an argument [4mn[24m, + insert the [4mn[24mth word from the previous command (the words in the + previous command begin with word 0). A negative argument in- + serts the [4mn[24mth word from the end of the previous command. Once + the argument [4mn[24m is computed, the argument is extracted as if the + "![4mn[24m" history expansion had been specified. + [1myank-last-arg (M-., M-_)[0m + Insert the last argument to the previous command (the last word + of the previous history entry). With a numeric argument, behave + exactly like [1myank-nth-arg[22m. Successive calls to [1myank-last-arg[0m + move back through the history list, inserting the last word (or + the word specified by the argument to the first call) of each + line in turn. Any numeric argument supplied to these successive + calls determines the direction to move through the history. A + negative argument switches the direction through the history + (back or forward). The history expansion facilities are used to + extract the last argument, as if the "!$" history expansion had + been specified. + [1moperate-and-get-next (C-o)[0m + Accept the current line for return to the calling application as + if a newline had been entered, and fetch the next line relative + to the current line from the history for editing. A numeric ar- + gument, if supplied, specifies the history entry to use instead + of the current line. + + [1mCommands for Changing Text[0m + [4mend-of-file[24m [1m(usually C-d)[0m + The character indicating end-of-file as set, for example, by + ``stty''. If this character is read when there are no charac- + ters on the line, and point is at the beginning of the line, + Readline interprets it as the end of input and returns [1mEOF[22m. + [1mdelete-char (C-d)[0m + Delete the character at point. If this function is bound to the + same character as the tty [1mEOF [22mcharacter, as [1mC-d [22mcommonly is, see + above for the effects. + [1mbackward-delete-char (Rubout)[0m + Delete the character behind the cursor. When given a numeric + argument, save the deleted text on the kill ring. + [1mforward-backward-delete-char[0m + Delete the character under the cursor, unless the cursor is at + the end of the line, in which case the character behind the cur- + sor is deleted. + [1mquoted-insert (C-q, C-v)[0m + Add the next character that you type to the line verbatim. This + is how to insert characters like [1mC-q[22m, for example. + [1mtab-insert (M-TAB)[0m + Insert a tab character. + [1mself-insert (a, b, A, 1, !, ...)[0m + Insert the character typed. + [1mtranspose-chars (C-t)[0m + Drag the character before point forward over the character at + point, moving point forward as well. If point is at the end of + the line, then this transposes the two characters before point. + Negative arguments have no effect. + [1mtranspose-words (M-t)[0m + Drag the word before point past the word after point, moving + point over that word as well. If point is at the end of the + line, this transposes the last two words on the line. + [1mupcase-word (M-u)[0m + Uppercase the current (or following) word. With a negative ar- + gument, uppercase the previous word, but do not move point. + [1mdowncase-word (M-l)[0m + Lowercase the current (or following) word. With a negative ar- + gument, lowercase the previous word, but do not move point. + [1mcapitalize-word (M-c)[0m + Capitalize the current (or following) word. With a negative ar- + gument, capitalize the previous word, but do not move point. + [1moverwrite-mode[0m + Toggle overwrite mode. With an explicit positive numeric argu- + ment, switches to overwrite mode. With an explicit non-positive + numeric argument, switches to insert mode. This command affects + only [1memacs [22mmode; [1mvi [22mmode does overwrite differently. Each call + to [4mreadline()[24m starts in insert mode. In overwrite mode, charac- + ters bound to [1mself-insert [22mreplace the text at point rather than + pushing the text to the right. Characters bound to [1mback-[0m + [1mward-delete-char [22mreplace the character before point with a + space. By default, this command is unbound. + + [1mKilling and Yanking[0m + [1mkill-line (C-k)[0m + Kill the text from point to the end of the line. + [1mbackward-kill-line (C-x Rubout)[0m + Kill backward to the beginning of the line. + [1munix-line-discard (C-u)[0m + Kill backward from point to the beginning of the line. The + killed text is saved on the kill-ring. + [1mkill-whole-line[0m + Kill all characters on the current line, no matter where point + is. + [1mkill-word (M-d)[0m + Kill from point the end of the current word, or if between + words, to the end of the next word. Word boundaries are the + same as those used by [1mforward-word[22m. + [1mbackward-kill-word (M-Rubout)[0m + Kill the word behind point. Word boundaries are the same as + those used by [1mbackward-word[22m. + [1munix-word-rubout (C-w)[0m + Kill the word behind point, using white space as a word bound- + ary. The killed text is saved on the kill-ring. + [1munix-filename-rubout[0m + Kill the word behind point, using white space and the slash + character as the word boundaries. The killed text is saved on + the kill-ring. + [1mdelete-horizontal-space (M-\)[0m + Delete all spaces and tabs around point. + [1mkill-region[0m + Kill the text between the point and [4mmark[24m (saved cursor posi- + tion). This text is referred to as the [4mregion[24m. + [1mcopy-region-as-kill[0m + Copy the text in the region to the kill buffer. + [1mcopy-backward-word[0m + Copy the word before point to the kill buffer. The word bound- + aries are the same as [1mbackward-word[22m. + [1mcopy-forward-word[0m + Copy the word following point to the kill buffer. The word + boundaries are the same as [1mforward-word[22m. + [1myank (C-y)[0m + Yank the top of the kill ring into the buffer at point. + [1myank-pop (M-y)[0m + Rotate the kill ring, and yank the new top. Only works follow- + ing [1myank [22mor [1myank-pop[22m. + + [1mNumeric Arguments[0m + [1mdigit-argument (M-0, M-1, ..., M--)[0m + Add this digit to the argument already accumulating, or start a + new argument. M-- starts a negative argument. + [1muniversal-argument[0m + This is another way to specify an argument. If this command is + followed by one or more digits, optionally with a leading minus + sign, those digits define the argument. If the command is fol- + lowed by digits, executing [1muniversal-argument [22magain ends the nu- + meric argument, but is otherwise ignored. As a special case, if + this command is immediately followed by a character that is nei- + ther a digit or minus sign, the argument count for the next com- + mand is multiplied by four. The argument count is initially + one, so executing this function the first time makes the argu- + ment count four, a second time makes the argument count sixteen, + and so on. + + [1mCompleting[0m + [1mcomplete (TAB)[0m + Attempt to perform completion on the text before point. The ac- + tual completion performed is application-specific. [1mBash[22m, for + instance, attempts completion treating the text as a variable + (if the text begins with [1m$[22m), username (if the text begins with + [1m~[22m), hostname (if the text begins with [1m@[22m), or command (including + aliases and functions) in turn. If none of these produces a + match, filename completion is attempted. [1mGdb[22m, on the other + hand, allows completion of program functions and variables, and + only attempts filename completion under certain circumstances. + [1mpossible-completions (M-?)[0m + List the possible completions of the text before point. When + displaying completions, readline sets the number of columns used + for display to the value of [1mcompletion-display-width[22m, the value + of the environment variable [1mCOLUMNS[22m, or the screen width, in + that order. + [1minsert-completions (M-*)[0m + Insert all completions of the text before point that would have + been generated by [1mpossible-completions[22m. + [1mmenu-complete[0m + Similar to [1mcomplete[22m, but replaces the word to be completed with + a single match from the list of possible completions. Repeated + execution of [1mmenu-complete [22msteps through the list of possible + completions, inserting each match in turn. At the end of the + list of completions, the bell is rung (subject to the setting of + [1mbell-style[22m) and the original text is restored. An argument of [4mn[0m + moves [4mn[24m positions forward in the list of matches; a negative ar- + gument may be used to move backward through the list. This com- + mand is intended to be bound to [1mTAB[22m, but is unbound by default. + [1mmenu-complete-backward[0m + Identical to [1mmenu-complete[22m, but moves backward through the list + of possible completions, as if [1mmenu-complete [22mhad been given a + negative argument. This command is unbound by default. + [1mdelete-char-or-list[0m + Deletes the character under the cursor if not at the beginning + or end of the line (like [1mdelete-char[22m). If at the end of the + line, behaves identically to [1mpossible-completions[22m. + + [1mKeyboard Macros[0m + [1mstart-kbd-macro (C-x ()[0m + Begin saving the characters typed into the current keyboard + macro. + [1mend-kbd-macro (C-x ))[0m + Stop saving the characters typed into the current keyboard macro + and store the definition. + [1mcall-last-kbd-macro (C-x e)[0m + Re-execute the last keyboard macro defined, by making the char- + acters in the macro appear as if typed at the keyboard. + [1mprint-last-kbd-macro ()[0m + Print the last keyboard macro defined in a format suitable for + the [4minputrc[24m file. + + [1mMiscellaneous[0m + [1mre-read-init-file (C-x C-r)[0m + Read in the contents of the [4minputrc[24m file, and incorporate any + bindings or variable assignments found there. + [1mabort (C-g)[0m + Abort the current editing command and ring the terminal's bell + (subject to the setting of [1mbell-style[22m). + [1mdo-lowercase-version (M-A, M-B, M-[4m[22mx[24m[1m, ...)[0m + If the metafied character [4mx[24m is uppercase, run the command that + is bound to the corresponding metafied lowercase character. The + behavior is undefined if [4mx[24m is already lowercase. + [1mprefix-meta (ESC)[0m + Metafy the next character typed. [1mESC f [22mis equivalent to [1mMeta-f[22m. + [1mundo (C-_, C-x C-u)[0m + Incremental undo, separately remembered for each line. + [1mrevert-line (M-r)[0m + Undo all changes made to this line. This is like executing the + [1mundo [22mcommand enough times to return the line to its initial + state. + [1mtilde-expand (M-&)[0m + Perform tilde expansion on the current word. + [1mset-mark (C-@, M-<space>)[0m + Set the mark to the point. If a numeric argument is supplied, + the mark is set to that position. + [1mexchange-point-and-mark (C-x C-x)[0m + Swap the point with the mark. The current cursor position is + set to the saved position, and the old cursor position is saved + as the mark. + [1mcharacter-search (C-])[0m + A character is read and point is moved to the next occurrence of + that character. A negative count searches for previous occur- + rences. + [1mcharacter-search-backward (M-C-])[0m + A character is read and point is moved to the previous occur- + rence of that character. A negative count searches for subse- + quent occurrences. + [1mskip-csi-sequence[0m + Read enough characters to consume a multi-key sequence such as + those defined for keys like Home and End. Such sequences begin + with a Control Sequence Indicator (CSI), usually ESC-[. If this + sequence is bound to "\[", keys producing such sequences will + have no effect unless explicitly bound to a readline command, + instead of inserting stray characters into the editing buffer. + This is unbound by default, but usually bound to ESC-[. + [1minsert-comment (M-#)[0m + Without a numeric argument, the value of the readline [1mcom-[0m + [1mment-begin [22mvariable is inserted at the beginning of the current + line. If a numeric argument is supplied, this command acts as a + toggle: if the characters at the beginning of the line do not + match the value of [1mcomment-begin[22m, the value is inserted, other- + wise the characters in [1mcomment-begin [22mare deleted from the begin- + ning of the line. In either case, the line is accepted as if a + newline had been typed. The default value of [1mcomment-begin[0m + makes the current line a shell comment. If a numeric argument + causes the comment character to be removed, the line will be ex- + ecuted by the shell. + [1mdump-functions[0m + Print all of the functions and their key bindings to the read- + line output stream. If a numeric argument is supplied, the out- + put is formatted in such a way that it can be made part of an + [4minputrc[24m file. + [1mdump-variables[0m + Print all of the settable variables and their values to the + readline output stream. If a numeric argument is supplied, the + output is formatted in such a way that it can be made part of an + [4minputrc[24m file. + [1mdump-macros[0m + Print all of the readline key sequences bound to macros and the + strings they output. If a numeric argument is supplied, the + output is formatted in such a way that it can be made part of an + [4minputrc[24m file. + [1memacs-editing-mode (C-e)[0m + When in [1mvi [22mcommand mode, this causes a switch to [1memacs [22mediting + mode. + [1mvi-editing-mode (M-C-j)[0m + When in [1memacs [22mediting mode, this causes a switch to [1mvi [22mediting + mode. + +[1mDEFAULT KEY BINDINGS[0m + The following is a list of the default emacs and vi bindings. Charac- + ters with the eighth bit set are written as M-<character>, and are re- + ferred to as [4mmetafied[24m characters. The printable ASCII characters not + mentioned in the list of emacs standard bindings are bound to the + [1mself-insert [22mfunction, which just inserts the given character into the + input line. In vi insertion mode, all characters not specifically men- + tioned are bound to [1mself-insert[22m. Characters assigned to signal genera- + tion by [4mstty[24m(1) or the terminal driver, such as C-Z or C-C, retain that + function. Upper and lower case metafied characters are bound to the + same function in the emacs mode meta keymap. The remaining characters + are unbound, which causes readline to ring the bell (subject to the + setting of the [1mbell-style [22mvariable). + + [1mEmacs Mode[0m + Emacs Standard bindings + + "C-@" set-mark + "C-A" beginning-of-line + "C-B" backward-char + "C-D" delete-char + "C-E" end-of-line + "C-F" forward-char + "C-G" abort + "C-H" backward-delete-char + "C-I" complete + "C-J" accept-line + "C-K" kill-line + "C-L" clear-screen + "C-M" accept-line + "C-N" next-history + "C-P" previous-history + "C-Q" quoted-insert + "C-R" reverse-search-history + "C-S" forward-search-history + "C-T" transpose-chars + "C-U" unix-line-discard + "C-V" quoted-insert + "C-W" unix-word-rubout + "C-Y" yank + "C-]" character-search + "C-_" undo + " " to "/" self-insert + "0" to "9" self-insert + ":" to "~" self-insert + "C-?" backward-delete-char + + Emacs Meta bindings + + "M-C-G" abort + "M-C-H" backward-kill-word + "M-C-I" tab-insert + "M-C-J" vi-editing-mode + "M-C-L" clear-display + "M-C-M" vi-editing-mode + "M-C-R" revert-line + "M-C-Y" yank-nth-arg + "M-C-[" complete + "M-C-]" character-search-backward + "M-space" set-mark + "M-#" insert-comment + "M-&" tilde-expand + "M-*" insert-completions + "M--" digit-argument + "M-." yank-last-arg + "M-0" digit-argument + "M-1" digit-argument + "M-2" digit-argument + "M-3" digit-argument + "M-4" digit-argument + "M-5" digit-argument + "M-6" digit-argument + "M-7" digit-argument + "M-8" digit-argument + "M-9" digit-argument + "M-<" beginning-of-history + "M-=" possible-completions + "M->" end-of-history + "M-?" possible-completions + "M-B" backward-word + "M-C" capitalize-word + "M-D" kill-word + "M-F" forward-word + "M-L" downcase-word + "M-N" non-incremental-forward-search-history + "M-P" non-incremental-reverse-search-history + "M-R" revert-line + "M-T" transpose-words + "M-U" upcase-word + "M-Y" yank-pop + "M-\" delete-horizontal-space + "M-~" tilde-expand + "M-C-?" backward-kill-word + "M-_" yank-last-arg + + Emacs Control-X bindings + + "C-XC-G" abort + "C-XC-R" re-read-init-file + "C-XC-U" undo + "C-XC-X" exchange-point-and-mark + "C-X(" start-kbd-macro + "C-X)" end-kbd-macro + "C-XE" call-last-kbd-macro + "C-XC-?" backward-kill-line + + + [1mVI Mode bindings[0m + VI Insert Mode functions + + "C-D" vi-eof-maybe + "C-H" backward-delete-char + "C-I" complete + "C-J" accept-line + "C-M" accept-line + "C-R" reverse-search-history + "C-S" forward-search-history + "C-T" transpose-chars + "C-U" unix-line-discard + "C-V" quoted-insert + "C-W" unix-word-rubout + "C-Y" yank + "C-[" vi-movement-mode + "C-_" undo + " " to "~" self-insert + "C-?" backward-delete-char + + VI Command Mode functions + + "C-D" vi-eof-maybe + "C-E" emacs-editing-mode + "C-G" abort + "C-H" backward-char + "C-J" accept-line + "C-K" kill-line + "C-L" clear-screen + "C-M" accept-line + "C-N" next-history + "C-P" previous-history + "C-Q" quoted-insert + "C-R" reverse-search-history + "C-S" forward-search-history + "C-T" transpose-chars + "C-U" unix-line-discard + "C-V" quoted-insert + "C-W" unix-word-rubout + "C-Y" yank + "C-_" vi-undo + " " forward-char + "#" insert-comment + "$" end-of-line + "%" vi-match + "&" vi-tilde-expand + "*" vi-complete + "+" next-history + "," vi-char-search + "-" previous-history + "." vi-redo + "/" vi-search + "0" beginning-of-line + "1" to "9" vi-arg-digit + ";" vi-char-search + "=" vi-complete + "?" vi-search + "A" vi-append-eol + "B" vi-prev-word + "C" vi-change-to + "D" vi-delete-to + "E" vi-end-word + "F" vi-char-search + "G" vi-fetch-history + "I" vi-insert-beg + "N" vi-search-again + "P" vi-put + "R" vi-replace + "S" vi-subst + "T" vi-char-search + "U" revert-line + "W" vi-next-word + "X" backward-delete-char + "Y" vi-yank-to + "\" vi-complete + "^" vi-first-print + "_" vi-yank-arg + "`" vi-goto-mark + "a" vi-append-mode + "b" vi-prev-word + "c" vi-change-to + "d" vi-delete-to + "e" vi-end-word + "f" vi-char-search + "h" backward-char + "i" vi-insertion-mode + "j" next-history + "k" prev-history + "l" forward-char + "m" vi-set-mark + "n" vi-search-again + "p" vi-put + "r" vi-change-char + "s" vi-subst + "t" vi-char-search + "u" vi-undo + "w" vi-next-word + "x" vi-delete + "y" vi-yank-to + "|" vi-column + "~" vi-change-case + +[1mSEE ALSO[0m + [4mThe[24m [4mGnu[24m [4mReadline[24m [4mLibrary[24m, Brian Fox and Chet Ramey + [4mThe[24m [4mGnu[24m [4mHistory[24m [4mLibrary[24m, Brian Fox and Chet Ramey + [4mbash[24m(1) + +[1mFILES[0m + [4m~/.inputrc[0m + Individual [1mreadline [22minitialization file + +[1mAUTHORS[0m + Brian Fox, Free Software Foundation + bfox@gnu.org + + Chet Ramey, Case Western Reserve University + chet.ramey@case.edu + +[1mBUG REPORTS[0m + If you find a bug in [1mreadline, [22myou should report it. But first, you + should make sure that it really is a bug, and that it appears in the + latest version of the [1mreadline [22mlibrary that you have. + + Once you have determined that a bug actually exists, mail a bug report + to [4mbug-readline[24m@[4mgnu.org[24m. If you have a fix, you are welcome to mail + that as well! Suggestions and `philosophical' bug reports may be + mailed to [4mbug-readline[24m@[4mgnu.org[24m or posted to the Usenet newsgroup + [1mgnu.bash.bug[22m. + + Comments and bug reports concerning this manual page should be directed + to [4mchet.ramey@case.edu[24m. + +[1mBUGS[0m + It's too big and too slow. + + + +GNU Readline 8.1 2020 October 29 READLINE(3) |