| 1 | .\" |
| 2 | .\" MAN PAGE COMMENTS to |
| 3 | .\" |
| 4 | .\" Chet Ramey |
| 5 | .\" Information Network Services |
| 6 | .\" Case Western Reserve University |
| 7 | .\" chet.ramey@case.edu |
| 8 | .\" |
| 9 | .\" Last Change: Thu Dec 28 14:49:51 EST 2017 |
| 10 | .\" |
| 11 | .TH READLINE 3 "2017 December 28" "GNU Readline 7.0" |
| 12 | .\" |
| 13 | .\" File Name macro. This used to be `.PN', for Path Name, |
| 14 | .\" but Sun doesn't seem to like that very much. |
| 15 | .\" |
| 16 | .de FN |
| 17 | \fI\|\\$1\|\fP |
| 18 | .. |
| 19 | .SH NAME |
| 20 | readline \- get a line from a user with editing |
| 21 | .SH SYNOPSIS |
| 22 | .LP |
| 23 | .nf |
| 24 | .ft B |
| 25 | #include <stdio.h> |
| 26 | #include <readline/readline.h> |
| 27 | #include <readline/history.h> |
| 28 | .ft |
| 29 | .fi |
| 30 | .LP |
| 31 | .nf |
| 32 | \fIchar *\fP |
| 33 | .br |
| 34 | \fBreadline\fP (\fIconst char *prompt\fP); |
| 35 | .fi |
| 36 | .SH COPYRIGHT |
| 37 | .if n Readline is Copyright (C) 1989\-2014 Free Software Foundation, Inc. |
| 38 | .if t Readline is Copyright \(co 1989\-2014 Free Software Foundation, Inc. |
| 39 | .SH DESCRIPTION |
| 40 | .LP |
| 41 | .B readline |
| 42 | will read a line from the terminal |
| 43 | and return it, using |
| 44 | .B prompt |
| 45 | as a prompt. If |
| 46 | .B prompt |
| 47 | is \fBNULL\fP or the empty string, no prompt is issued. |
| 48 | The line returned is allocated with |
| 49 | .IR malloc (3); |
| 50 | the caller must free it when finished. The line returned |
| 51 | has the final newline removed, so only the text of the line |
| 52 | remains. |
| 53 | .LP |
| 54 | .B readline |
| 55 | offers editing capabilities while the user is entering the |
| 56 | line. |
| 57 | By default, the line editing commands |
| 58 | are similar to those of emacs. |
| 59 | A vi\-style line editing interface is also available. |
| 60 | .LP |
| 61 | This manual page describes only the most basic use of \fBreadline\fP. |
| 62 | Much more functionality is available; see |
| 63 | \fIThe GNU Readline Library\fP and \fIThe GNU History Library\fP |
| 64 | for additional information. |
| 65 | .SH RETURN VALUE |
| 66 | .LP |
| 67 | .B readline |
| 68 | returns the text of the line read. A blank line |
| 69 | returns the empty string. If |
| 70 | .B EOF |
| 71 | is encountered while reading a line, and the line is empty, |
| 72 | .B NULL |
| 73 | is returned. If an |
| 74 | .B EOF |
| 75 | is read with a non\-empty line, it is |
| 76 | treated as a newline. |
| 77 | .SH NOTATION |
| 78 | .LP |
| 79 | An Emacs-style notation is used to denote |
| 80 | keystrokes. Control keys are denoted by C\-\fIkey\fR, e.g., C\-n |
| 81 | means Control\-N. Similarly, |
| 82 | .I meta |
| 83 | keys are denoted by M\-\fIkey\fR, so M\-x means Meta\-X. (On keyboards |
| 84 | without a |
| 85 | .I meta |
| 86 | key, M\-\fIx\fP means ESC \fIx\fP, i.e., press the Escape key |
| 87 | then the |
| 88 | .I x |
| 89 | key. This makes ESC the \fImeta prefix\fP. |
| 90 | The combination M\-C\-\fIx\fP means ESC\-Control\-\fIx\fP, |
| 91 | or press the Escape key |
| 92 | then hold the Control key while pressing the |
| 93 | .I x |
| 94 | key.) |
| 95 | .PP |
| 96 | Readline commands may be given numeric |
| 97 | .IR arguments , |
| 98 | which normally act as a repeat count. Sometimes, however, it is the |
| 99 | sign of the argument that is significant. Passing a negative argument |
| 100 | to a command that acts in the forward direction (e.g., \fBkill\-line\fP) |
| 101 | causes that command to act in a backward direction. |
| 102 | Commands whose behavior with arguments deviates from this are noted |
| 103 | below. |
| 104 | .PP |
| 105 | When a command is described as \fIkilling\fP text, the text |
| 106 | deleted is saved for possible future retrieval |
| 107 | (\fIyanking\fP). The killed text is saved in a |
| 108 | \fIkill ring\fP. Consecutive kills cause the text to be |
| 109 | accumulated into one unit, which can be yanked all at once. |
| 110 | Commands which do not kill text separate the chunks of text |
| 111 | on the kill ring. |
| 112 | .SH INITIALIZATION FILE |
| 113 | .LP |
| 114 | Readline is customized by putting commands in an initialization |
| 115 | file (the \fIinputrc\fP file). |
| 116 | The name of this file is taken from the value of the |
| 117 | .B INPUTRC |
| 118 | environment variable. If that variable is unset, the default is |
| 119 | .IR ~/.inputrc . |
| 120 | If that file does not exist or cannot be read, the ultimate default is |
| 121 | .IR /etc/inputrc . |
| 122 | When a program which uses the readline library starts up, the |
| 123 | init file is read, and the key bindings and variables are set. |
| 124 | There are only a few basic constructs allowed in the |
| 125 | readline init file. Blank lines are ignored. |
| 126 | Lines beginning with a \fB#\fP are comments. |
| 127 | Lines beginning with a \fB$\fP indicate conditional constructs. |
| 128 | Other lines denote key bindings and variable settings. |
| 129 | Each program using this library may add its own commands |
| 130 | and bindings. |
| 131 | .PP |
| 132 | For example, placing |
| 133 | .RS |
| 134 | .PP |
| 135 | M\-Control\-u: universal\-argument |
| 136 | .RE |
| 137 | or |
| 138 | .RS |
| 139 | C\-Meta\-u: universal\-argument |
| 140 | .RE |
| 141 | .sp |
| 142 | into the |
| 143 | .I inputrc |
| 144 | would make M\-C\-u execute the readline command |
| 145 | .IR universal\-argument . |
| 146 | .PP |
| 147 | The following symbolic character names are recognized while |
| 148 | processing key bindings: |
| 149 | .IR DEL , |
| 150 | .IR ESC , |
| 151 | .IR ESCAPE , |
| 152 | .IR LFD , |
| 153 | .IR NEWLINE , |
| 154 | .IR RET , |
| 155 | .IR RETURN , |
| 156 | .IR RUBOUT , |
| 157 | .IR SPACE , |
| 158 | .IR SPC , |
| 159 | and |
| 160 | .IR TAB . |
| 161 | .PP |
| 162 | In addition to command names, readline allows keys to be bound |
| 163 | to a string that is inserted when the key is pressed (a \fImacro\fP). |
| 164 | .PP |
| 165 | .SS Key Bindings |
| 166 | .PP |
| 167 | The syntax for controlling key bindings in the |
| 168 | .I inputrc |
| 169 | file is simple. All that is required is the name of the |
| 170 | command or the text of a macro and a key sequence to which |
| 171 | it should be bound. The name may be specified in one of two ways: |
| 172 | as a symbolic key name, possibly with \fIMeta\-\fP or \fIControl\-\fP |
| 173 | prefixes, or as a key sequence. |
| 174 | The name and key sequence are separated by a colon. There can be no |
| 175 | whitespace between the name and the colon. |
| 176 | .PP |
| 177 | When using the form \fBkeyname\fP:\^\fIfunction-name\fP or \fImacro\fP, |
| 178 | .I keyname |
| 179 | is the name of a key spelled out in English. For example: |
| 180 | .sp |
| 181 | .RS |
| 182 | Control\-u: universal\-argument |
| 183 | .br |
| 184 | Meta\-Rubout: backward\-kill\-word |
| 185 | .br |
| 186 | Control\-o: "> output" |
| 187 | .RE |
| 188 | .LP |
| 189 | In the above example, |
| 190 | .I C\-u |
| 191 | is bound to the function |
| 192 | .BR universal\-argument , |
| 193 | .I M-DEL |
| 194 | is bound to the function |
| 195 | .BR backward\-kill\-word , |
| 196 | and |
| 197 | .I C\-o |
| 198 | is bound to run the macro |
| 199 | expressed on the right hand side (that is, to insert the text |
| 200 | .if t \f(CW> output\fP |
| 201 | .if n ``> output'' |
| 202 | into the line). |
| 203 | .PP |
| 204 | In the second form, \fB"keyseq"\fP:\^\fIfunction\-name\fP or \fImacro\fP, |
| 205 | .B keyseq |
| 206 | differs from |
| 207 | .B keyname |
| 208 | above in that strings denoting |
| 209 | an entire key sequence may be specified by placing the sequence |
| 210 | within double quotes. Some GNU Emacs style key escapes can be |
| 211 | used, as in the following example, but the symbolic character names |
| 212 | are not recognized. |
| 213 | .sp |
| 214 | .RS |
| 215 | "\eC\-u": universal\-argument |
| 216 | .br |
| 217 | "\eC\-x\eC\-r": re\-read\-init\-file |
| 218 | .br |
| 219 | "\ee[11~": "Function Key 1" |
| 220 | .RE |
| 221 | .PP |
| 222 | In this example, |
| 223 | .I C-u |
| 224 | is again bound to the function |
| 225 | .BR universal\-argument . |
| 226 | .I "C-x C-r" |
| 227 | is bound to the function |
| 228 | .BR re\-read\-init\-file , |
| 229 | and |
| 230 | .I "ESC [ 1 1 ~" |
| 231 | is bound to insert the text |
| 232 | .if t \f(CWFunction Key 1\fP. |
| 233 | .if n ``Function Key 1''. |
| 234 | .PP |
| 235 | The full set of GNU Emacs style escape sequences available when specifying |
| 236 | key sequences is |
| 237 | .RS |
| 238 | .PD 0 |
| 239 | .TP |
| 240 | .B \eC\- |
| 241 | control prefix |
| 242 | .TP |
| 243 | .B \eM\- |
| 244 | meta prefix |
| 245 | .TP |
| 246 | .B \ee |
| 247 | an escape character |
| 248 | .TP |
| 249 | .B \e\e |
| 250 | backslash |
| 251 | .TP |
| 252 | .B \e" |
| 253 | literal ", a double quote |
| 254 | .TP |
| 255 | .B \e' |
| 256 | literal ', a single quote |
| 257 | .RE |
| 258 | .PD |
| 259 | .PP |
| 260 | In addition to the GNU Emacs style escape sequences, a second |
| 261 | set of backslash escapes is available: |
| 262 | .RS |
| 263 | .PD 0 |
| 264 | .TP |
| 265 | .B \ea |
| 266 | alert (bell) |
| 267 | .TP |
| 268 | .B \eb |
| 269 | backspace |
| 270 | .TP |
| 271 | .B \ed |
| 272 | delete |
| 273 | .TP |
| 274 | .B \ef |
| 275 | form feed |
| 276 | .TP |
| 277 | .B \en |
| 278 | newline |
| 279 | .TP |
| 280 | .B \er |
| 281 | carriage return |
| 282 | .TP |
| 283 | .B \et |
| 284 | horizontal tab |
| 285 | .TP |
| 286 | .B \ev |
| 287 | vertical tab |
| 288 | .TP |
| 289 | .B \e\fInnn\fP |
| 290 | the eight-bit character whose value is the octal value \fInnn\fP |
| 291 | (one to three digits) |
| 292 | .TP |
| 293 | .B \ex\fIHH\fP |
| 294 | the eight-bit character whose value is the hexadecimal value \fIHH\fP |
| 295 | (one or two hex digits) |
| 296 | .RE |
| 297 | .PD |
| 298 | .PP |
| 299 | When entering the text of a macro, single or double quotes should |
| 300 | be used to indicate a macro definition. Unquoted text |
| 301 | is assumed to be a function name. |
| 302 | In the macro body, the backslash escapes described above are expanded. |
| 303 | Backslash will quote any other character in the macro text, |
| 304 | including " and '. |
| 305 | .PP |
| 306 | .B Bash |
| 307 | allows the current readline key bindings to be displayed or modified |
| 308 | with the |
| 309 | .B bind |
| 310 | builtin command. The editing mode may be switched during interactive |
| 311 | use by using the |
| 312 | .B \-o |
| 313 | option to the |
| 314 | .B set |
| 315 | builtin command. Other programs using this library provide |
| 316 | similar mechanisms. The |
| 317 | .I inputrc |
| 318 | file may be edited and re-read if a program does not provide |
| 319 | any other means to incorporate new bindings. |
| 320 | .SS Variables |
| 321 | .PP |
| 322 | Readline has variables that can be used to further customize its |
| 323 | behavior. A variable may be set in the |
| 324 | .I inputrc |
| 325 | file with a statement of the form |
| 326 | .RS |
| 327 | .PP |
| 328 | \fBset\fP \fIvariable\-name\fP \fIvalue\fP |
| 329 | .RE |
| 330 | .PP |
| 331 | Except where noted, readline variables can take the values |
| 332 | .B On |
| 333 | or |
| 334 | .B Off |
| 335 | (without regard to case). |
| 336 | Unrecognized variable names are ignored. |
| 337 | When a variable value is read, empty or null values, "on" (case-insensitive), |
| 338 | and "1" are equivalent to \fBOn\fP. All other values are equivalent to |
| 339 | \fBOff\fP. |
| 340 | The variables and their default values are: |
| 341 | .PP |
| 342 | .PD 0 |
| 343 | .TP |
| 344 | .B bell\-style (audible) |
| 345 | Controls what happens when readline wants to ring the terminal bell. |
| 346 | If set to \fBnone\fP, readline never rings the bell. If set to |
| 347 | \fBvisible\fP, readline uses a visible bell if one is available. |
| 348 | If set to \fBaudible\fP, readline attempts to ring the terminal's bell. |
| 349 | .TP |
| 350 | .B bind\-tty\-special\-chars (On) |
| 351 | If set to \fBOn\fP (the default), readline attempts to bind the control |
| 352 | characters treated specially by the kernel's terminal driver to their |
| 353 | readline equivalents. |
| 354 | .TP |
| 355 | .B blink\-matching\-paren (Off) |
| 356 | If set to \fBOn\fP, readline attempts to briefly move the cursor to an |
| 357 | opening parenthesis when a closing parenthesis is inserted. |
| 358 | .TP |
| 359 | .B colored\-completion\-prefix (Off) |
| 360 | If set to \fBOn\fP, when listing completions, readline displays the |
| 361 | common prefix of the set of possible completions using a different color. |
| 362 | The color definitions are taken from the value of the \fBLS_COLORS\fP |
| 363 | environment variable. |
| 364 | .TP |
| 365 | .B colored\-stats (Off) |
| 366 | If set to \fBOn\fP, readline displays possible completions using different |
| 367 | colors to indicate their file type. |
| 368 | The color definitions are taken from the value of the \fBLS_COLORS\fP |
| 369 | environment variable. |
| 370 | .TP |
| 371 | .B comment\-begin (``#'') |
| 372 | The string that is inserted in \fBvi\fP mode when the |
| 373 | .B insert\-comment |
| 374 | command is executed. |
| 375 | This command is bound to |
| 376 | .B M\-# |
| 377 | in emacs mode and to |
| 378 | .B # |
| 379 | in vi command mode. |
| 380 | .TP |
| 381 | .B completion\-display\-width (\-1) |
| 382 | The number of screen columns used to display possible matches |
| 383 | when performing completion. |
| 384 | The value is ignored if it is less than 0 or greater than the terminal |
| 385 | screen width. |
| 386 | A value of 0 will cause matches to be displayed one per line. |
| 387 | The default value is \-1. |
| 388 | .TP |
| 389 | .B completion\-ignore\-case (Off) |
| 390 | If set to \fBOn\fP, readline performs filename matching and completion |
| 391 | in a case\-insensitive fashion. |
| 392 | .TP |
| 393 | .B completion\-map\-case (Off) |
| 394 | If set to \fBOn\fP, and \fBcompletion\-ignore\-case\fP is enabled, readline |
| 395 | treats hyphens (\fI\-\fP) and underscores (\fI_\fP) as equivalent when |
| 396 | performing case\-insensitive filename matching and completion. |
| 397 | .TP |
| 398 | .B completion\-prefix\-display\-length (0) |
| 399 | The length in characters of the common prefix of a list of possible |
| 400 | completions that is displayed without modification. When set to a |
| 401 | value greater than zero, common prefixes longer than this value are |
| 402 | replaced with an ellipsis when displaying possible completions. |
| 403 | .TP |
| 404 | .B completion\-query\-items (100) |
| 405 | This determines when the user is queried about viewing |
| 406 | the number of possible completions |
| 407 | generated by the \fBpossible\-completions\fP command. |
| 408 | It may be set to any integer value greater than or equal to |
| 409 | zero. If the number of possible completions is greater than |
| 410 | or equal to the value of this variable, the user is asked whether |
| 411 | or not he wishes to view them; otherwise they are simply listed |
| 412 | on the terminal. A negative value causes readline to never ask. |
| 413 | .TP |
| 414 | .B convert\-meta (On) |
| 415 | If set to \fBOn\fP, readline will convert characters with the |
| 416 | eighth bit set to an ASCII key sequence |
| 417 | by stripping the eighth bit and prefixing it with an |
| 418 | escape character (in effect, using escape as the \fImeta prefix\fP). |
| 419 | The default is \fIOn\fP, but readline will set it to \fIOff\fP if the |
| 420 | locale contains eight-bit characters. |
| 421 | .TP |
| 422 | .B disable\-completion (Off) |
| 423 | If set to \fBOn\fP, readline will inhibit word completion. Completion |
| 424 | characters will be inserted into the line as if they had been |
| 425 | mapped to \fBself-insert\fP. |
| 426 | .TP |
| 427 | .B echo\-control\-characters (On) |
| 428 | When set to \fBOn\fP, on operating systems that indicate they support it, |
| 429 | readline echoes a character corresponding to a signal generated from the |
| 430 | keyboard. |
| 431 | .TP |
| 432 | .B editing\-mode (emacs) |
| 433 | Controls whether readline begins with a set of key bindings similar |
| 434 | to \fIEmacs\fP or \fIvi\fP. |
| 435 | .B editing\-mode |
| 436 | can be set to either |
| 437 | .B emacs |
| 438 | or |
| 439 | .BR vi . |
| 440 | .TP |
| 441 | .B emacs\-mode\-string (@) |
| 442 | If the \fIshow\-mode\-in\-prompt\fP variable is enabled, |
| 443 | this string is displayed immediately before the last line of the primary |
| 444 | prompt when emacs editing mode is active. The value is expanded like a |
| 445 | key binding, so the standard set of meta- and control prefixes and |
| 446 | backslash escape sequences is available. |
| 447 | Use the \e1 and \e2 escapes to begin and end sequences of |
| 448 | non-printing characters, which can be used to embed a terminal control |
| 449 | sequence into the mode string. |
| 450 | .TP |
| 451 | .B enable\-bracketed\-paste (Off) |
| 452 | When set to \fBOn\fP, readline will configure the terminal in a way |
| 453 | that will enable it to insert each paste into the editing buffer as a |
| 454 | single string of characters, instead of treating each character as if |
| 455 | it had been read from the keyboard. This can prevent pasted characters |
| 456 | from being interpreted as editing commands. |
| 457 | .TP |
| 458 | .B enable\-keypad (Off) |
| 459 | When set to \fBOn\fP, readline will try to enable the application |
| 460 | keypad when it is called. Some systems need this to enable the |
| 461 | arrow keys. |
| 462 | .TP |
| 463 | .B enable\-meta\-key (On) |
| 464 | When set to \fBOn\fP, readline will try to enable any meta modifier |
| 465 | key the terminal claims to support when it is called. On many terminals, |
| 466 | the meta key is used to send eight-bit characters. |
| 467 | .TP |
| 468 | .B expand\-tilde (Off) |
| 469 | If set to \fBOn\fP, tilde expansion is performed when readline |
| 470 | attempts word completion. |
| 471 | .TP |
| 472 | .B history\-preserve\-point (Off) |
| 473 | If set to \fBOn\fP, the history code attempts to place point at the |
| 474 | same location on each history line retrieved with \fBprevious-history\fP |
| 475 | or \fBnext-history\fP. |
| 476 | .TP |
| 477 | .B history\-size (unset) |
| 478 | Set the maximum number of history entries saved in the history list. |
| 479 | If set to zero, any existing history entries are deleted and no new entries |
| 480 | are saved. |
| 481 | If set to a value less than zero, the number of history entries is not |
| 482 | limited. |
| 483 | By default, the number of history entries is not limited. |
| 484 | If an attempt is made to set \fIhistory\-size\fP to a non-numeric value, |
| 485 | the maximum number of history entries will be set to 500. |
| 486 | .TP |
| 487 | .B horizontal\-scroll\-mode (Off) |
| 488 | When set to \fBOn\fP, makes readline use a single line for display, |
| 489 | scrolling the input horizontally on a single screen line when it |
| 490 | becomes longer than the screen width rather than wrapping to a new line. |
| 491 | .TP |
| 492 | .B input\-meta (Off) |
| 493 | If set to \fBOn\fP, readline will enable eight-bit input (that is, |
| 494 | it will not clear the eighth bit in the characters it reads), |
| 495 | regardless of what the terminal claims it can support. The name |
| 496 | .B meta\-flag |
| 497 | is a synonym for this variable. |
| 498 | The default is \fIOff\fP, but readline will set it to \fIOn\fP if the |
| 499 | locale contains eight-bit characters. |
| 500 | .TP |
| 501 | .B isearch\-terminators (``C\-[ C\-J'') |
| 502 | The string of characters that should terminate an incremental |
| 503 | search without subsequently executing the character as a command. |
| 504 | If this variable has not been given a value, the characters |
| 505 | \fIESC\fP and \fIC\-J\fP will terminate an incremental search. |
| 506 | .TP |
| 507 | .B keymap (emacs) |
| 508 | Set the current readline keymap. The set of legal keymap names is |
| 509 | \fIemacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, |
| 510 | vi-command\fP, and |
| 511 | .IR vi-insert . |
| 512 | \fIvi\fP is equivalent to \fIvi-command\fP; \fIemacs\fP is |
| 513 | equivalent to \fIemacs-standard\fP. The default value is |
| 514 | .IR emacs . |
| 515 | The value of |
| 516 | .B editing\-mode |
| 517 | also affects the default keymap. |
| 518 | .TP |
| 519 | .B keyseq\-timeout (500) |
| 520 | Specifies the duration \fIreadline\fP will wait for a character when reading an |
| 521 | ambiguous key sequence (one that can form a complete key sequence using |
| 522 | the input read so far, or can take additional input to complete a longer |
| 523 | key sequence). |
| 524 | If no input is received within the timeout, \fIreadline\fP will use the shorter |
| 525 | but complete key sequence. |
| 526 | The value is specified in milliseconds, so a value of 1000 means that |
| 527 | \fIreadline\fP will wait one second for additional input. |
| 528 | If this variable is set to a value less than or equal to zero, or to a |
| 529 | non-numeric value, \fIreadline\fP will wait until another key is pressed to |
| 530 | decide which key sequence to complete. |
| 531 | .TP |
| 532 | .B mark\-directories (On) |
| 533 | If set to \fBOn\fP, completed directory names have a slash |
| 534 | appended. |
| 535 | .TP |
| 536 | .B mark\-modified\-lines (Off) |
| 537 | If set to \fBOn\fP, history lines that have been modified are displayed |
| 538 | with a preceding asterisk (\fB*\fP). |
| 539 | .TP |
| 540 | .B mark\-symlinked\-directories (Off) |
| 541 | If set to \fBOn\fP, completed names which are symbolic links to directories |
| 542 | have a slash appended (subject to the value of |
| 543 | \fBmark\-directories\fP). |
| 544 | .TP |
| 545 | .B match\-hidden\-files (On) |
| 546 | This variable, when set to \fBOn\fP, causes readline to match files whose |
| 547 | names begin with a `.' (hidden files) when performing filename |
| 548 | completion. |
| 549 | If set to \fBOff\fP, the leading `.' must be |
| 550 | supplied by the user in the filename to be completed. |
| 551 | .TP |
| 552 | .B menu\-complete\-display\-prefix (Off) |
| 553 | If set to \fBOn\fP, menu completion displays the common prefix of the |
| 554 | list of possible completions (which may be empty) before cycling through |
| 555 | the list. |
| 556 | .TP |
| 557 | .B output\-meta (Off) |
| 558 | If set to \fBOn\fP, readline will display characters with the |
| 559 | eighth bit set directly rather than as a meta-prefixed escape |
| 560 | sequence. |
| 561 | The default is \fIOff\fP, but readline will set it to \fIOn\fP if the |
| 562 | locale contains eight-bit characters. |
| 563 | .TP |
| 564 | .B page\-completions (On) |
| 565 | If set to \fBOn\fP, readline uses an internal \fImore\fP-like pager |
| 566 | to display a screenful of possible completions at a time. |
| 567 | .TP |
| 568 | .B print\-completions\-horizontally (Off) |
| 569 | If set to \fBOn\fP, readline will display completions with matches |
| 570 | sorted horizontally in alphabetical order, rather than down the screen. |
| 571 | .TP |
| 572 | .B revert\-all\-at\-newline (Off) |
| 573 | If set to \fBOn\fP, readline will undo all changes to history lines |
| 574 | before returning when \fBaccept\-line\fP is executed. By default, |
| 575 | history lines may be modified and retain individual undo lists across |
| 576 | calls to \fBreadline\fP. |
| 577 | .TP |
| 578 | .B show\-all\-if\-ambiguous (Off) |
| 579 | This alters the default behavior of the completion functions. If |
| 580 | set to |
| 581 | .BR On , |
| 582 | words which have more than one possible completion cause the |
| 583 | matches to be listed immediately instead of ringing the bell. |
| 584 | .TP |
| 585 | .B show\-all\-if\-unmodified (Off) |
| 586 | This alters the default behavior of the completion functions in |
| 587 | a fashion similar to \fBshow\-all\-if\-ambiguous\fP. |
| 588 | If set to |
| 589 | .BR On , |
| 590 | words which have more than one possible completion without any |
| 591 | possible partial completion (the possible completions don't share |
| 592 | a common prefix) cause the matches to be listed immediately instead |
| 593 | of ringing the bell. |
| 594 | .TP |
| 595 | .B show\-mode\-in\-prompt (Off) |
| 596 | If set to \fBOn\fP, add a string to the beginning of the prompt |
| 597 | indicating the editing mode: emacs, vi command, or vi insertion. |
| 598 | The mode strings are user-settable (e.g., \fIemacs\-mode\-string\fP). |
| 599 | .TP |
| 600 | .B skip\-completed\-text (Off) |
| 601 | If set to \fBOn\fP, this alters the default completion behavior when |
| 602 | inserting a single match into the line. It's only active when |
| 603 | performing completion in the middle of a word. If enabled, readline |
| 604 | does not insert characters from the completion that match characters |
| 605 | after point in the word being completed, so portions of the word |
| 606 | following the cursor are not duplicated. |
| 607 | .TP |
| 608 | .B vi\-cmd\-mode\-string ((cmd)) |
| 609 | If the \fIshow\-mode\-in\-prompt\fP variable is enabled, |
| 610 | this string is displayed immediately before the last line of the primary |
| 611 | prompt when vi editing mode is active and in command mode. |
| 612 | The value is expanded like a |
| 613 | key binding, so the standard set of meta- and control prefixes and |
| 614 | backslash escape sequences is available. |
| 615 | Use the \e1 and \e2 escapes to begin and end sequences of |
| 616 | non-printing characters, which can be used to embed a terminal control |
| 617 | sequence into the mode string. |
| 618 | .TP |
| 619 | .B vi\-ins\-mode\-string ((ins)) |
| 620 | If the \fIshow\-mode\-in\-prompt\fP variable is enabled, |
| 621 | this string is displayed immediately before the last line of the primary |
| 622 | prompt when vi editing mode is active and in insertion mode. |
| 623 | The value is expanded like a |
| 624 | key binding, so the standard set of meta- and control prefixes and |
| 625 | backslash escape sequences is available. |
| 626 | Use the \e1 and \e2 escapes to begin and end sequences of |
| 627 | non-printing characters, which can be used to embed a terminal control |
| 628 | sequence into the mode string. |
| 629 | .TP |
| 630 | .B visible\-stats (Off) |
| 631 | If set to \fBOn\fP, a character denoting a file's type as reported |
| 632 | by \fIstat\fP(2) is appended to the filename when listing possible |
| 633 | completions. |
| 634 | .PD |
| 635 | .SS Conditional Constructs |
| 636 | .PP |
| 637 | Readline implements a facility similar in spirit to the conditional |
| 638 | compilation features of the C preprocessor which allows key |
| 639 | bindings and variable settings to be performed as the result |
| 640 | of tests. There are four parser directives used. |
| 641 | .IP \fB$if\fP |
| 642 | The |
| 643 | .B $if |
| 644 | construct allows bindings to be made based on the |
| 645 | editing mode, the terminal being used, or the application using |
| 646 | readline. The text of the test, after any comparison operator, |
| 647 | extends to the end of the line; |
| 648 | unless otherwise noted, no characters are required to isolate it. |
| 649 | .RS |
| 650 | .IP \fBmode\fP |
| 651 | The \fBmode=\fP form of the \fB$if\fP directive is used to test |
| 652 | whether readline is in emacs or vi mode. |
| 653 | This may be used in conjunction |
| 654 | with the \fBset keymap\fP command, for instance, to set bindings in |
| 655 | the \fIemacs-standard\fP and \fIemacs-ctlx\fP keymaps only if |
| 656 | readline is starting out in emacs mode. |
| 657 | .IP \fBterm\fP |
| 658 | The \fBterm=\fP form may be used to include terminal-specific |
| 659 | key bindings, perhaps to bind the key sequences output by the |
| 660 | terminal's function keys. The word on the right side of the |
| 661 | .B = |
| 662 | is tested against the full name of the terminal and the portion |
| 663 | of the terminal name before the first \fB\-\fP. This allows |
| 664 | .I sun |
| 665 | to match both |
| 666 | .I sun |
| 667 | and |
| 668 | .IR sun\-cmd , |
| 669 | for instance. |
| 670 | .IP \fBversion\fP |
| 671 | The \fBversion\fP test may be used to perform comparisons against |
| 672 | specific readline versions. |
| 673 | The \fBversion\fP expands to the current readline version. |
| 674 | The set of comparison operators includes |
| 675 | .BR = , |
| 676 | (and |
| 677 | .BR == ), |
| 678 | .BR != , |
| 679 | .BR <= , |
| 680 | .BR >= , |
| 681 | .BR < , |
| 682 | and |
| 683 | .BR > . |
| 684 | The version number supplied on the right side of the operator consists |
| 685 | of a major version number, an optional decimal point, and an optional |
| 686 | minor version (e.g., \fB7.1\fP). If the minor version is omitted, it |
| 687 | is assumed to be \fB0\fP. |
| 688 | The operator may be separated from the string \fBversion\fP |
| 689 | and from the version number argument by whitespace. |
| 690 | .IP \fBapplication\fP |
| 691 | The \fBapplication\fP construct is used to include |
| 692 | application-specific settings. Each program using the readline |
| 693 | library sets the \fIapplication name\fP, and an initialization |
| 694 | file can test for a particular value. |
| 695 | This could be used to bind key sequences to functions useful for |
| 696 | a specific program. For instance, the following command adds a |
| 697 | key sequence that quotes the current or previous word in \fBbash\fP: |
| 698 | .sp 1 |
| 699 | .RS |
| 700 | .nf |
| 701 | \fB$if\fP Bash |
| 702 | # Quote the current or previous word |
| 703 | "\eC-xq": "\eeb\e"\eef\e"" |
| 704 | \fB$endif\fP |
| 705 | .fi |
| 706 | .RE |
| 707 | .IP \fIvariable\fP |
| 708 | The \fIvariable\fP construct provides simple equality tests for readline |
| 709 | variables and values. |
| 710 | The permitted comparison operators are \fI=\fP, \fI==\fP, and \fI!=\fP. |
| 711 | The variable name must be separated from the comparison operator by |
| 712 | whitespace; the operator may be separated from the value on the right hand |
| 713 | side by whitespace. |
| 714 | Both string and boolean variables may be tested. Boolean variables must be |
| 715 | tested against the values \fIon\fP and \fIoff\fP. |
| 716 | .RE |
| 717 | .IP \fB$endif\fP |
| 718 | This command, as seen in the previous example, terminates an |
| 719 | \fB$if\fP command. |
| 720 | .IP \fB$else\fP |
| 721 | Commands in this branch of the \fB$if\fP directive are executed if |
| 722 | the test fails. |
| 723 | .IP \fB$include\fP |
| 724 | This directive takes a single filename as an argument and reads commands |
| 725 | and bindings from that file. For example, the following directive |
| 726 | would read \fI/etc/inputrc\fP: |
| 727 | .sp 1 |
| 728 | .RS |
| 729 | .nf |
| 730 | \fB$include\fP \^ \fI/etc/inputrc\fP |
| 731 | .fi |
| 732 | .RE |
| 733 | .SH SEARCHING |
| 734 | .PP |
| 735 | Readline provides commands for searching through the command history |
| 736 | for lines containing a specified string. |
| 737 | There are two search modes: |
| 738 | .I incremental |
| 739 | and |
| 740 | .IR non-incremental . |
| 741 | .PP |
| 742 | Incremental searches begin before the user has finished typing the |
| 743 | search string. |
| 744 | As each character of the search string is typed, readline displays |
| 745 | the next entry from the history matching the string typed so far. |
| 746 | An incremental search requires only as many characters as needed to |
| 747 | find the desired history entry. |
| 748 | To search backward in the history for a particular string, type |
| 749 | \fBC\-r\fP. Typing \fBC\-s\fP searches forward through the history. |
| 750 | The characters present in the value of the \fBisearch-terminators\fP |
| 751 | variable are used to terminate an incremental search. |
| 752 | If that variable has not been assigned a value the \fIEscape\fP and |
| 753 | \fBC\-J\fP characters will terminate an incremental search. |
| 754 | \fBC\-G\fP will abort an incremental search and restore the original |
| 755 | line. |
| 756 | When the search is terminated, the history entry containing the |
| 757 | search string becomes the current line. |
| 758 | .PP |
| 759 | To find other matching entries in the history list, type \fBC\-s\fP or |
| 760 | \fBC\-r\fP as appropriate. |
| 761 | This will search backward or forward in the history for the next |
| 762 | line matching the search string typed so far. |
| 763 | Any other key sequence bound to a readline command will terminate |
| 764 | the search and execute that command. |
| 765 | For instance, a newline will terminate the search and accept |
| 766 | the line, thereby executing the command from the history list. |
| 767 | A movement command will terminate the search, make the last line found |
| 768 | the current line, and begin editing. |
| 769 | .PP |
| 770 | Non-incremental searches read the entire search string before starting |
| 771 | to search for matching history lines. The search string may be |
| 772 | typed by the user or be part of the contents of the current line. |
| 773 | .SH EDITING COMMANDS |
| 774 | .PP |
| 775 | The following is a list of the names of the commands and the default |
| 776 | key sequences to which they are bound. |
| 777 | Command names without an accompanying key sequence are unbound by default. |
| 778 | .PP |
| 779 | In the following descriptions, \fIpoint\fP refers to the current cursor |
| 780 | position, and \fImark\fP refers to a cursor position saved by the |
| 781 | \fBset\-mark\fP command. |
| 782 | The text between the point and mark is referred to as the \fIregion\fP. |
| 783 | .SS Commands for Moving |
| 784 | .PP |
| 785 | .PD 0 |
| 786 | .TP |
| 787 | .B beginning\-of\-line (C\-a) |
| 788 | Move to the start of the current line. |
| 789 | .TP |
| 790 | .B end\-of\-line (C\-e) |
| 791 | Move to the end of the line. |
| 792 | .TP |
| 793 | .B forward\-char (C\-f) |
| 794 | Move forward a character. |
| 795 | .TP |
| 796 | .B backward\-char (C\-b) |
| 797 | Move back a character. |
| 798 | .TP |
| 799 | .B forward\-word (M\-f) |
| 800 | Move forward to the end of the next word. Words are composed of |
| 801 | alphanumeric characters (letters and digits). |
| 802 | .TP |
| 803 | .B backward\-word (M\-b) |
| 804 | Move back to the start of the current or previous word. Words are |
| 805 | composed of alphanumeric characters (letters and digits). |
| 806 | .TP |
| 807 | .B previous\-screen\-line |
| 808 | Attempt to move point to the same physical screen column on the previous |
| 809 | physical screen line. This will not have the desired effect if the current |
| 810 | Readline line does not take up more than one physical line or if point is not |
| 811 | greater than the length of the prompt plus the screen width. |
| 812 | .TP |
| 813 | .B next\-screen\-line |
| 814 | Attempt to move point to the same physical screen column on the next |
| 815 | physical screen line. This will not have the desired effect if the current |
| 816 | Readline line does not take up more than one physical line or if the length |
| 817 | of the current Readline line is not greater than the length of the prompt |
| 818 | plus the screen width. |
| 819 | .TP |
| 820 | .B clear\-screen (C\-l) |
| 821 | Clear the screen leaving the current line at the top of the screen. |
| 822 | With an argument, refresh the current line without clearing the |
| 823 | screen. |
| 824 | .TP |
| 825 | .B redraw\-current\-line |
| 826 | Refresh the current line. |
| 827 | .PD |
| 828 | .SS Commands for Manipulating the History |
| 829 | .PP |
| 830 | .PD 0 |
| 831 | .TP |
| 832 | .B accept\-line (Newline, Return) |
| 833 | Accept the line regardless of where the cursor is. |
| 834 | If this line is |
| 835 | non-empty, it may be added to the history list for future recall with |
| 836 | \fBadd_history()\fP. |
| 837 | If the line is a modified history line, the history line is restored to its original state. |
| 838 | .TP |
| 839 | .B previous\-history (C\-p) |
| 840 | Fetch the previous command from the history list, moving back in |
| 841 | the list. |
| 842 | .TP |
| 843 | .B next\-history (C\-n) |
| 844 | Fetch the next command from the history list, moving forward in the |
| 845 | list. |
| 846 | .TP |
| 847 | .B beginning\-of\-history (M\-<) |
| 848 | Move to the first line in the history. |
| 849 | .TP |
| 850 | .B end\-of\-history (M\->) |
| 851 | Move to the end of the input history, i.e., the line currently being |
| 852 | entered. |
| 853 | .TP |
| 854 | .B reverse\-search\-history (C\-r) |
| 855 | Search backward starting at the current line and moving `up' through |
| 856 | the history as necessary. This is an incremental search. |
| 857 | .TP |
| 858 | .B forward\-search\-history (C\-s) |
| 859 | Search forward starting at the current line and moving `down' through |
| 860 | the history as necessary. This is an incremental search. |
| 861 | .TP |
| 862 | .B non\-incremental\-reverse\-search\-history (M\-p) |
| 863 | Search backward through the history starting at the current line |
| 864 | using a non-incremental search for a string supplied by the user. |
| 865 | .TP |
| 866 | .B non\-incremental\-forward\-search\-history (M\-n) |
| 867 | Search forward through the history using a non-incremental search |
| 868 | for a string supplied by the user. |
| 869 | .TP |
| 870 | .B history\-search\-backward |
| 871 | Search backward through the history for the string of characters |
| 872 | between the start of the current line and the current cursor |
| 873 | position (the \fIpoint\fP). |
| 874 | The search string must match at the beginning of a history line. |
| 875 | This is a non-incremental search. |
| 876 | .TP |
| 877 | .B history\-search\-forward |
| 878 | Search forward through the history for the string of characters |
| 879 | between the start of the current line and the point. |
| 880 | The search string must match at the beginning of a history line. |
| 881 | This is a non-incremental search. |
| 882 | .TP |
| 883 | .B history\-substring\-search\-backward |
| 884 | Search backward through the history for the string of characters |
| 885 | between the start of the current line and the current cursor |
| 886 | position (the \fIpoint\fP). |
| 887 | The search string may match anywhere in a history line. |
| 888 | This is a non-incremental search. |
| 889 | .TP |
| 890 | .B history\-substring\-search\-forward |
| 891 | Search forward through the history for the string of characters |
| 892 | between the start of the current line and the point. |
| 893 | The search string may match anywhere in a history line. |
| 894 | This is a non-incremental search. |
| 895 | .TP |
| 896 | .B yank\-nth\-arg (M\-C\-y) |
| 897 | Insert the first argument to the previous command (usually |
| 898 | the second word on the previous line) at point. |
| 899 | With an argument |
| 900 | .IR n , |
| 901 | insert the \fIn\fPth word from the previous command (the words |
| 902 | in the previous command begin with word 0). A negative argument |
| 903 | inserts the \fIn\fPth word from the end of the previous command. |
| 904 | Once the argument \fIn\fP is computed, the argument is extracted |
| 905 | as if the "!\fIn\fP" history expansion had been specified. |
| 906 | .TP |
| 907 | .B |
| 908 | yank\-last\-arg (M\-.\^, M\-_\^) |
| 909 | Insert the last argument to the previous command (the last word of |
| 910 | the previous history entry). |
| 911 | With a numeric argument, behave exactly like \fByank\-nth\-arg\fP. |
| 912 | Successive calls to \fByank\-last\-arg\fP move back through the history |
| 913 | list, inserting the last word (or the word specified by the argument to |
| 914 | the first call) of each line in turn. |
| 915 | Any numeric argument supplied to these successive calls determines |
| 916 | the direction to move through the history. A negative argument switches |
| 917 | the direction through the history (back or forward). |
| 918 | The history expansion facilities are used to extract the last argument, |
| 919 | as if the "!$" history expansion had been specified. |
| 920 | .PD |
| 921 | .SS Commands for Changing Text |
| 922 | .PP |
| 923 | .PD 0 |
| 924 | .TP |
| 925 | .B \fIend\-of\-file\fP (usually C\-d) |
| 926 | The character indicating end-of-file as set, for example, by |
| 927 | .if t \f(CWstty\fP. |
| 928 | .if n ``stty''. |
| 929 | If this character is read when there are no characters |
| 930 | on the line, and point is at the beginning of the line, Readline |
| 931 | interprets it as the end of input and returns |
| 932 | .SM |
| 933 | .BR EOF . |
| 934 | .TP |
| 935 | .B delete\-char (C\-d) |
| 936 | Delete the character at point. |
| 937 | If this function is bound to the |
| 938 | same character as the tty \fBEOF\fP character, as \fBC\-d\fP |
| 939 | commonly is, see above for the effects. |
| 940 | .TP |
| 941 | .B backward\-delete\-char (Rubout) |
| 942 | Delete the character behind the cursor. When given a numeric argument, |
| 943 | save the deleted text on the kill ring. |
| 944 | .TP |
| 945 | .B forward\-backward\-delete\-char |
| 946 | Delete the character under the cursor, unless the cursor is at the |
| 947 | end of the line, in which case the character behind the cursor is |
| 948 | deleted. |
| 949 | .TP |
| 950 | .B quoted\-insert (C\-q, C\-v) |
| 951 | Add the next character that you type to the line verbatim. This is |
| 952 | how to insert characters like \fBC\-q\fP, for example. |
| 953 | .TP |
| 954 | .B tab\-insert (M-TAB) |
| 955 | Insert a tab character. |
| 956 | .TP |
| 957 | .B self\-insert (a,\ b,\ A,\ 1,\ !,\ ...) |
| 958 | Insert the character typed. |
| 959 | .TP |
| 960 | .B transpose\-chars (C\-t) |
| 961 | Drag the character before point forward over the character at point, |
| 962 | moving point forward as well. |
| 963 | If point is at the end of the line, then this transposes |
| 964 | the two characters before point. |
| 965 | Negative arguments have no effect. |
| 966 | .TP |
| 967 | .B transpose\-words (M\-t) |
| 968 | Drag the word before point past the word after point, |
| 969 | moving point over that word as well. |
| 970 | If point is at the end of the line, this transposes |
| 971 | the last two words on the line. |
| 972 | .TP |
| 973 | .B upcase\-word (M\-u) |
| 974 | Uppercase the current (or following) word. With a negative argument, |
| 975 | uppercase the previous word, but do not move point. |
| 976 | .TP |
| 977 | .B downcase\-word (M\-l) |
| 978 | Lowercase the current (or following) word. With a negative argument, |
| 979 | lowercase the previous word, but do not move point. |
| 980 | .TP |
| 981 | .B capitalize\-word (M\-c) |
| 982 | Capitalize the current (or following) word. With a negative argument, |
| 983 | capitalize the previous word, but do not move point. |
| 984 | .TP |
| 985 | .B overwrite\-mode |
| 986 | Toggle overwrite mode. With an explicit positive numeric argument, |
| 987 | switches to overwrite mode. With an explicit non-positive numeric |
| 988 | argument, switches to insert mode. This command affects only |
| 989 | \fBemacs\fP mode; \fBvi\fP mode does overwrite differently. |
| 990 | Each call to \fIreadline()\fP starts in insert mode. |
| 991 | In overwrite mode, characters bound to \fBself\-insert\fP replace |
| 992 | the text at point rather than pushing the text to the right. |
| 993 | Characters bound to \fBbackward\-delete\-char\fP replace the character |
| 994 | before point with a space. By default, this command is unbound. |
| 995 | .PD |
| 996 | .SS Killing and Yanking |
| 997 | .PP |
| 998 | .PD 0 |
| 999 | .TP |
| 1000 | .B kill\-line (C\-k) |
| 1001 | Kill the text from point to the end of the line. |
| 1002 | .TP |
| 1003 | .B backward\-kill\-line (C\-x Rubout) |
| 1004 | Kill backward to the beginning of the line. |
| 1005 | .TP |
| 1006 | .B unix\-line\-discard (C\-u) |
| 1007 | Kill backward from point to the beginning of the line. |
| 1008 | The killed text is saved on the kill-ring. |
| 1009 | .\" There is no real difference between this and backward-kill-line |
| 1010 | .TP |
| 1011 | .B kill\-whole\-line |
| 1012 | Kill all characters on the current line, no matter where point is. |
| 1013 | .TP |
| 1014 | .B kill\-word (M\-d) |
| 1015 | Kill from point the end of the current word, or if between |
| 1016 | words, to the end of the next word. Word boundaries are the same as |
| 1017 | those used by \fBforward\-word\fP. |
| 1018 | .TP |
| 1019 | .B backward\-kill\-word (M\-Rubout) |
| 1020 | Kill the word behind point. |
| 1021 | Word boundaries are the same as those used by \fBbackward\-word\fP. |
| 1022 | .TP |
| 1023 | .B unix\-word\-rubout (C\-w) |
| 1024 | Kill the word behind point, using white space as a word boundary. |
| 1025 | The killed text is saved on the kill-ring. |
| 1026 | .TP |
| 1027 | .B unix\-filename\-rubout |
| 1028 | Kill the word behind point, using white space and the slash character |
| 1029 | as the word boundaries. |
| 1030 | The killed text is saved on the kill-ring. |
| 1031 | .TP |
| 1032 | .B delete\-horizontal\-space (M\-\e) |
| 1033 | Delete all spaces and tabs around point. |
| 1034 | .TP |
| 1035 | .B kill\-region |
| 1036 | Kill the text between the point and \fImark\fP (saved cursor position). |
| 1037 | This text is referred to as the \fIregion\fP. |
| 1038 | .TP |
| 1039 | .B copy\-region\-as\-kill |
| 1040 | Copy the text in the region to the kill buffer. |
| 1041 | .TP |
| 1042 | .B copy\-backward\-word |
| 1043 | Copy the word before point to the kill buffer. |
| 1044 | The word boundaries are the same as \fBbackward\-word\fP. |
| 1045 | .TP |
| 1046 | .B copy\-forward\-word |
| 1047 | Copy the word following point to the kill buffer. |
| 1048 | The word boundaries are the same as \fBforward\-word\fP. |
| 1049 | .TP |
| 1050 | .B yank (C\-y) |
| 1051 | Yank the top of the kill ring into the buffer at point. |
| 1052 | .TP |
| 1053 | .B yank\-pop (M\-y) |
| 1054 | Rotate the kill ring, and yank the new top. Only works following |
| 1055 | .B yank |
| 1056 | or |
| 1057 | .BR yank\-pop . |
| 1058 | .PD |
| 1059 | .SS Numeric Arguments |
| 1060 | .PP |
| 1061 | .PD 0 |
| 1062 | .TP |
| 1063 | .B digit\-argument (M\-0, M\-1, ..., M\-\-) |
| 1064 | Add this digit to the argument already accumulating, or start a new |
| 1065 | argument. M\-\- starts a negative argument. |
| 1066 | .TP |
| 1067 | .B universal\-argument |
| 1068 | This is another way to specify an argument. |
| 1069 | If this command is followed by one or more digits, optionally with a |
| 1070 | leading minus sign, those digits define the argument. |
| 1071 | If the command is followed by digits, executing |
| 1072 | .B universal\-argument |
| 1073 | again ends the numeric argument, but is otherwise ignored. |
| 1074 | As a special case, if this command is immediately followed by a |
| 1075 | character that is neither a digit or minus sign, the argument count |
| 1076 | for the next command is multiplied by four. |
| 1077 | The argument count is initially one, so executing this function the |
| 1078 | first time makes the argument count four, a second time makes the |
| 1079 | argument count sixteen, and so on. |
| 1080 | .PD |
| 1081 | .SS Completing |
| 1082 | .PP |
| 1083 | .PD 0 |
| 1084 | .TP |
| 1085 | .B complete (TAB) |
| 1086 | Attempt to perform completion on the text before point. |
| 1087 | The actual completion performed is application-specific. |
| 1088 | .BR Bash , |
| 1089 | for instance, attempts completion treating the text as a variable |
| 1090 | (if the text begins with \fB$\fP), username (if the text begins with |
| 1091 | \fB~\fP), hostname (if the text begins with \fB@\fP), or |
| 1092 | command (including aliases and functions) in turn. If none |
| 1093 | of these produces a match, filename completion is attempted. |
| 1094 | .BR Gdb , |
| 1095 | on the other hand, |
| 1096 | allows completion of program functions and variables, and |
| 1097 | only attempts filename completion under certain circumstances. |
| 1098 | .TP |
| 1099 | .B possible\-completions (M\-?) |
| 1100 | List the possible completions of the text before point. |
| 1101 | When displaying completions, readline sets the number of columns used |
| 1102 | for display to the value of \fBcompletion-display-width\fP, the value of |
| 1103 | the environment variable |
| 1104 | .SM |
| 1105 | .BR COLUMNS , |
| 1106 | or the screen width, in that order. |
| 1107 | .TP |
| 1108 | .B insert\-completions (M\-*) |
| 1109 | Insert all completions of the text before point |
| 1110 | that would have been generated by |
| 1111 | \fBpossible\-completions\fP. |
| 1112 | .TP |
| 1113 | .B menu\-complete |
| 1114 | Similar to \fBcomplete\fP, but replaces the word to be completed |
| 1115 | with a single match from the list of possible completions. |
| 1116 | Repeated execution of \fBmenu\-complete\fP steps through the list |
| 1117 | of possible completions, inserting each match in turn. |
| 1118 | At the end of the list of completions, the bell is rung |
| 1119 | (subject to the setting of \fBbell\-style\fP) |
| 1120 | and the original text is restored. |
| 1121 | An argument of \fIn\fP moves \fIn\fP positions forward in the list |
| 1122 | of matches; a negative argument may be used to move backward |
| 1123 | through the list. |
| 1124 | This command is intended to be bound to \fBTAB\fP, but is unbound |
| 1125 | by default. |
| 1126 | .TP |
| 1127 | .B menu\-complete\-backward |
| 1128 | Identical to \fBmenu\-complete\fP, but moves backward through the list |
| 1129 | of possible completions, as if \fBmenu\-complete\fP had been given a |
| 1130 | negative argument. This command is unbound by default. |
| 1131 | .TP |
| 1132 | .B delete\-char\-or\-list |
| 1133 | Deletes the character under the cursor if not at the beginning or |
| 1134 | end of the line (like \fBdelete-char\fP). |
| 1135 | If at the end of the line, behaves identically to |
| 1136 | \fBpossible-completions\fP. |
| 1137 | .PD |
| 1138 | .SS Keyboard Macros |
| 1139 | .PP |
| 1140 | .PD 0 |
| 1141 | .TP |
| 1142 | .B start\-kbd\-macro (C\-x (\^) |
| 1143 | Begin saving the characters typed into the current keyboard macro. |
| 1144 | .TP |
| 1145 | .B end\-kbd\-macro (C\-x )\^) |
| 1146 | Stop saving the characters typed into the current keyboard macro |
| 1147 | and store the definition. |
| 1148 | .TP |
| 1149 | .B call\-last\-kbd\-macro (C\-x e) |
| 1150 | Re-execute the last keyboard macro defined, by making the characters |
| 1151 | in the macro appear as if typed at the keyboard. |
| 1152 | .TP |
| 1153 | .B print\-last\-kbd\-macro () |
| 1154 | Print the last keyboard macro defined in a format suitable for the |
| 1155 | \fIinputrc\fP file. |
| 1156 | .PD |
| 1157 | .SS Miscellaneous |
| 1158 | .PP |
| 1159 | .PD 0 |
| 1160 | .TP |
| 1161 | .B re\-read\-init\-file (C\-x C\-r) |
| 1162 | Read in the contents of the \fIinputrc\fP file, and incorporate |
| 1163 | any bindings or variable assignments found there. |
| 1164 | .TP |
| 1165 | .B abort (C\-g) |
| 1166 | Abort the current editing command and |
| 1167 | ring the terminal's bell (subject to the setting of |
| 1168 | .BR bell\-style ). |
| 1169 | .TP |
| 1170 | .B do\-lowercase\-version (M\-A, M\-B, M\-\fIx\fP, ...) |
| 1171 | If the metafied character \fIx\fP is uppercase, run the command |
| 1172 | that is bound to the corresponding metafied lowercase character. |
| 1173 | The behavior is undefined if \fIx\fP is already lowercase. |
| 1174 | .TP |
| 1175 | .B prefix\-meta (ESC) |
| 1176 | Metafy the next character typed. |
| 1177 | .SM |
| 1178 | .B ESC |
| 1179 | .B f |
| 1180 | is equivalent to |
| 1181 | .BR Meta\-f . |
| 1182 | .TP |
| 1183 | .B undo (C\-_, C\-x C\-u) |
| 1184 | Incremental undo, separately remembered for each line. |
| 1185 | .TP |
| 1186 | .B revert\-line (M\-r) |
| 1187 | Undo all changes made to this line. This is like executing the |
| 1188 | .B undo |
| 1189 | command enough times to return the line to its initial state. |
| 1190 | .TP |
| 1191 | .B tilde\-expand (M\-&) |
| 1192 | Perform tilde expansion on the current word. |
| 1193 | .TP |
| 1194 | .B set\-mark (C\-@, M\-<space>) |
| 1195 | Set the mark to the point. If a |
| 1196 | numeric argument is supplied, the mark is set to that position. |
| 1197 | .TP |
| 1198 | .B exchange\-point\-and\-mark (C\-x C\-x) |
| 1199 | Swap the point with the mark. The current cursor position is set to |
| 1200 | the saved position, and the old cursor position is saved as the mark. |
| 1201 | .TP |
| 1202 | .B character\-search (C\-]) |
| 1203 | A character is read and point is moved to the next occurrence of that |
| 1204 | character. A negative count searches for previous occurrences. |
| 1205 | .TP |
| 1206 | .B character\-search\-backward (M\-C\-]) |
| 1207 | A character is read and point is moved to the previous occurrence of that |
| 1208 | character. A negative count searches for subsequent occurrences. |
| 1209 | .TP |
| 1210 | .B skip\-csi\-sequence |
| 1211 | Read enough characters to consume a multi-key sequence such as those |
| 1212 | defined for keys like Home and End. Such sequences begin with a |
| 1213 | Control Sequence Indicator (CSI), usually ESC\-[. If this sequence is |
| 1214 | bound to "\e[", keys producing such sequences will have no effect |
| 1215 | unless explicitly bound to a readline command, instead of inserting |
| 1216 | stray characters into the editing buffer. This is unbound by default, |
| 1217 | but usually bound to ESC\-[. |
| 1218 | .TP |
| 1219 | .B insert\-comment (M\-#) |
| 1220 | Without a numeric argument, the value of the readline |
| 1221 | .B comment\-begin |
| 1222 | variable is inserted at the beginning of the current line. |
| 1223 | If a numeric argument is supplied, this command acts as a toggle: if |
| 1224 | the characters at the beginning of the line do not match the value |
| 1225 | of \fBcomment\-begin\fP, the value is inserted, otherwise |
| 1226 | the characters in \fBcomment-begin\fP are deleted from the beginning of |
| 1227 | the line. |
| 1228 | In either case, the line is accepted as if a newline had been typed. |
| 1229 | The default value of |
| 1230 | .B comment\-begin |
| 1231 | makes the current line a shell comment. |
| 1232 | If a numeric argument causes the comment character to be removed, the line |
| 1233 | will be executed by the shell. |
| 1234 | .TP |
| 1235 | .B dump\-functions |
| 1236 | Print all of the functions and their key bindings to the |
| 1237 | readline output stream. If a numeric argument is supplied, |
| 1238 | the output is formatted in such a way that it can be made part |
| 1239 | of an \fIinputrc\fP file. |
| 1240 | .TP |
| 1241 | .B dump\-variables |
| 1242 | Print all of the settable variables and their values to the |
| 1243 | readline output stream. If a numeric argument is supplied, |
| 1244 | the output is formatted in such a way that it can be made part |
| 1245 | of an \fIinputrc\fP file. |
| 1246 | .TP |
| 1247 | .B dump\-macros |
| 1248 | Print all of the readline key sequences bound to macros and the |
| 1249 | strings they output. If a numeric argument is supplied, |
| 1250 | the output is formatted in such a way that it can be made part |
| 1251 | of an \fIinputrc\fP file. |
| 1252 | .TP |
| 1253 | .B emacs\-editing\-mode (C\-e) |
| 1254 | When in |
| 1255 | .B vi |
| 1256 | command mode, this causes a switch to |
| 1257 | .B emacs |
| 1258 | editing mode. |
| 1259 | .TP |
| 1260 | .B vi\-editing\-mode (M\-C\-j) |
| 1261 | When in |
| 1262 | .B emacs |
| 1263 | editing mode, this causes a switch to |
| 1264 | .B vi |
| 1265 | editing mode. |
| 1266 | .PD |
| 1267 | .SH DEFAULT KEY BINDINGS |
| 1268 | .LP |
| 1269 | The following is a list of the default emacs and vi bindings. |
| 1270 | Characters with the eighth bit set are written as M\-<character>, and |
| 1271 | are referred to as |
| 1272 | .I metafied |
| 1273 | characters. |
| 1274 | The printable ASCII characters not mentioned in the list of emacs |
| 1275 | standard bindings are bound to the |
| 1276 | .B self\-insert |
| 1277 | function, which just inserts the given character into the input line. |
| 1278 | In vi insertion mode, all characters not specifically mentioned are |
| 1279 | bound to |
| 1280 | .BR self\-insert . |
| 1281 | Characters assigned to signal generation by |
| 1282 | .IR stty (1) |
| 1283 | or the terminal driver, such as C-Z or C-C, |
| 1284 | retain that function. |
| 1285 | Upper and lower case metafied characters are bound to the same function in |
| 1286 | the emacs mode meta keymap. |
| 1287 | The remaining characters are unbound, which causes readline |
| 1288 | to ring the bell (subject to the setting of the |
| 1289 | .B bell\-style |
| 1290 | variable). |
| 1291 | .SS Emacs Mode |
| 1292 | .RS +.6i |
| 1293 | .nf |
| 1294 | .ta 2.5i |
| 1295 | .sp |
| 1296 | Emacs Standard bindings |
| 1297 | .sp |
| 1298 | "C-@" set-mark |
| 1299 | "C-A" beginning-of-line |
| 1300 | "C-B" backward-char |
| 1301 | "C-D" delete-char |
| 1302 | "C-E" end-of-line |
| 1303 | "C-F" forward-char |
| 1304 | "C-G" abort |
| 1305 | "C-H" backward-delete-char |
| 1306 | "C-I" complete |
| 1307 | "C-J" accept-line |
| 1308 | "C-K" kill-line |
| 1309 | "C-L" clear-screen |
| 1310 | "C-M" accept-line |
| 1311 | "C-N" next-history |
| 1312 | "C-P" previous-history |
| 1313 | "C-Q" quoted-insert |
| 1314 | "C-R" reverse-search-history |
| 1315 | "C-S" forward-search-history |
| 1316 | "C-T" transpose-chars |
| 1317 | "C-U" unix-line-discard |
| 1318 | "C-V" quoted-insert |
| 1319 | "C-W" unix-word-rubout |
| 1320 | "C-Y" yank |
| 1321 | "C-]" character-search |
| 1322 | "C-_" undo |
| 1323 | "\^ " to "/" self-insert |
| 1324 | "0" to "9" self-insert |
| 1325 | ":" to "~" self-insert |
| 1326 | "C-?" backward-delete-char |
| 1327 | .PP |
| 1328 | Emacs Meta bindings |
| 1329 | .sp |
| 1330 | "M-C-G" abort |
| 1331 | "M-C-H" backward-kill-word |
| 1332 | "M-C-I" tab-insert |
| 1333 | "M-C-J" vi-editing-mode |
| 1334 | "M-C-M" vi-editing-mode |
| 1335 | "M-C-R" revert-line |
| 1336 | "M-C-Y" yank-nth-arg |
| 1337 | "M-C-[" complete |
| 1338 | "M-C-]" character-search-backward |
| 1339 | "M-space" set-mark |
| 1340 | "M-#" insert-comment |
| 1341 | "M-&" tilde-expand |
| 1342 | "M-*" insert-completions |
| 1343 | "M--" digit-argument |
| 1344 | "M-." yank-last-arg |
| 1345 | "M-0" digit-argument |
| 1346 | "M-1" digit-argument |
| 1347 | "M-2" digit-argument |
| 1348 | "M-3" digit-argument |
| 1349 | "M-4" digit-argument |
| 1350 | "M-5" digit-argument |
| 1351 | "M-6" digit-argument |
| 1352 | "M-7" digit-argument |
| 1353 | "M-8" digit-argument |
| 1354 | "M-9" digit-argument |
| 1355 | "M-<" beginning-of-history |
| 1356 | "M-=" possible-completions |
| 1357 | "M->" end-of-history |
| 1358 | "M-?" possible-completions |
| 1359 | "M-B" backward-word |
| 1360 | "M-C" capitalize-word |
| 1361 | "M-D" kill-word |
| 1362 | "M-F" forward-word |
| 1363 | "M-L" downcase-word |
| 1364 | "M-N" non-incremental-forward-search-history |
| 1365 | "M-P" non-incremental-reverse-search-history |
| 1366 | "M-R" revert-line |
| 1367 | "M-T" transpose-words |
| 1368 | "M-U" upcase-word |
| 1369 | "M-Y" yank-pop |
| 1370 | "M-\e" delete-horizontal-space |
| 1371 | "M-~" tilde-expand |
| 1372 | "M-C-?" backward-kill-word |
| 1373 | "M-_" yank-last-arg |
| 1374 | .PP |
| 1375 | Emacs Control-X bindings |
| 1376 | .sp |
| 1377 | "C-XC-G" abort |
| 1378 | "C-XC-R" re-read-init-file |
| 1379 | "C-XC-U" undo |
| 1380 | "C-XC-X" exchange-point-and-mark |
| 1381 | "C-X(" start-kbd-macro |
| 1382 | "C-X)" end-kbd-macro |
| 1383 | "C-XE" call-last-kbd-macro |
| 1384 | "C-XC-?" backward-kill-line |
| 1385 | .sp |
| 1386 | .RE |
| 1387 | .SS VI Mode bindings |
| 1388 | .RS +.6i |
| 1389 | .nf |
| 1390 | .ta 2.5i |
| 1391 | .sp |
| 1392 | .PP |
| 1393 | VI Insert Mode functions |
| 1394 | .sp |
| 1395 | "C-D" vi-eof-maybe |
| 1396 | "C-H" backward-delete-char |
| 1397 | "C-I" complete |
| 1398 | "C-J" accept-line |
| 1399 | "C-M" accept-line |
| 1400 | "C-R" reverse-search-history |
| 1401 | "C-S" forward-search-history |
| 1402 | "C-T" transpose-chars |
| 1403 | "C-U" unix-line-discard |
| 1404 | "C-V" quoted-insert |
| 1405 | "C-W" unix-word-rubout |
| 1406 | "C-Y" yank |
| 1407 | "C-[" vi-movement-mode |
| 1408 | "C-_" undo |
| 1409 | "\^ " to "~" self-insert |
| 1410 | "C-?" backward-delete-char |
| 1411 | .PP |
| 1412 | VI Command Mode functions |
| 1413 | .sp |
| 1414 | "C-D" vi-eof-maybe |
| 1415 | "C-E" emacs-editing-mode |
| 1416 | "C-G" abort |
| 1417 | "C-H" backward-char |
| 1418 | "C-J" accept-line |
| 1419 | "C-K" kill-line |
| 1420 | "C-L" clear-screen |
| 1421 | "C-M" accept-line |
| 1422 | "C-N" next-history |
| 1423 | "C-P" previous-history |
| 1424 | "C-Q" quoted-insert |
| 1425 | "C-R" reverse-search-history |
| 1426 | "C-S" forward-search-history |
| 1427 | "C-T" transpose-chars |
| 1428 | "C-U" unix-line-discard |
| 1429 | "C-V" quoted-insert |
| 1430 | "C-W" unix-word-rubout |
| 1431 | "C-Y" yank |
| 1432 | "C-_" vi-undo |
| 1433 | "\^ " forward-char |
| 1434 | "#" insert-comment |
| 1435 | "$" end-of-line |
| 1436 | "%" vi-match |
| 1437 | "&" vi-tilde-expand |
| 1438 | "*" vi-complete |
| 1439 | "+" next-history |
| 1440 | "," vi-char-search |
| 1441 | "-" previous-history |
| 1442 | "." vi-redo |
| 1443 | "/" vi-search |
| 1444 | "0" beginning-of-line |
| 1445 | "1" to "9" vi-arg-digit |
| 1446 | ";" vi-char-search |
| 1447 | "=" vi-complete |
| 1448 | "?" vi-search |
| 1449 | "A" vi-append-eol |
| 1450 | "B" vi-prev-word |
| 1451 | "C" vi-change-to |
| 1452 | "D" vi-delete-to |
| 1453 | "E" vi-end-word |
| 1454 | "F" vi-char-search |
| 1455 | "G" vi-fetch-history |
| 1456 | "I" vi-insert-beg |
| 1457 | "N" vi-search-again |
| 1458 | "P" vi-put |
| 1459 | "R" vi-replace |
| 1460 | "S" vi-subst |
| 1461 | "T" vi-char-search |
| 1462 | "U" revert-line |
| 1463 | "W" vi-next-word |
| 1464 | "X" backward-delete-char |
| 1465 | "Y" vi-yank-to |
| 1466 | "\e" vi-complete |
| 1467 | "^" vi-first-print |
| 1468 | "_" vi-yank-arg |
| 1469 | "`" vi-goto-mark |
| 1470 | "a" vi-append-mode |
| 1471 | "b" vi-prev-word |
| 1472 | "c" vi-change-to |
| 1473 | "d" vi-delete-to |
| 1474 | "e" vi-end-word |
| 1475 | "f" vi-char-search |
| 1476 | "h" backward-char |
| 1477 | "i" vi-insertion-mode |
| 1478 | "j" next-history |
| 1479 | "k" prev-history |
| 1480 | "l" forward-char |
| 1481 | "m" vi-set-mark |
| 1482 | "n" vi-search-again |
| 1483 | "p" vi-put |
| 1484 | "r" vi-change-char |
| 1485 | "s" vi-subst |
| 1486 | "t" vi-char-search |
| 1487 | "u" vi-undo |
| 1488 | "w" vi-next-word |
| 1489 | "x" vi-delete |
| 1490 | "y" vi-yank-to |
| 1491 | "|" vi-column |
| 1492 | "~" vi-change-case |
| 1493 | .RE |
| 1494 | .SH "SEE ALSO" |
| 1495 | .PD 0 |
| 1496 | .TP |
| 1497 | \fIThe Gnu Readline Library\fP, Brian Fox and Chet Ramey |
| 1498 | .TP |
| 1499 | \fIThe Gnu History Library\fP, Brian Fox and Chet Ramey |
| 1500 | .TP |
| 1501 | \fIbash\fP(1) |
| 1502 | .PD |
| 1503 | .SH FILES |
| 1504 | .PD 0 |
| 1505 | .TP |
| 1506 | .FN ~/.inputrc |
| 1507 | Individual \fBreadline\fP initialization file |
| 1508 | .PD |
| 1509 | .SH AUTHORS |
| 1510 | Brian Fox, Free Software Foundation |
| 1511 | .br |
| 1512 | bfox@gnu.org |
| 1513 | .PP |
| 1514 | Chet Ramey, Case Western Reserve University |
| 1515 | .br |
| 1516 | chet.ramey@case.edu |
| 1517 | .SH BUG REPORTS |
| 1518 | If you find a bug in |
| 1519 | .B readline, |
| 1520 | you should report it. But first, you should |
| 1521 | make sure that it really is a bug, and that it appears in the latest |
| 1522 | version of the |
| 1523 | .B readline |
| 1524 | library that you have. |
| 1525 | .PP |
| 1526 | Once you have determined that a bug actually exists, mail a |
| 1527 | bug report to \fIbug\-readline\fP@\fIgnu.org\fP. |
| 1528 | If you have a fix, you are welcome to mail that |
| 1529 | as well! Suggestions and `philosophical' bug reports may be mailed |
| 1530 | to \fPbug-readline\fP@\fIgnu.org\fP or posted to the Usenet |
| 1531 | newsgroup |
| 1532 | .BR gnu.bash.bug . |
| 1533 | .PP |
| 1534 | Comments and bug reports concerning |
| 1535 | this manual page should be directed to |
| 1536 | .IR chet.ramey@case.edu . |
| 1537 | .SH BUGS |
| 1538 | .PP |
| 1539 | It's too big and too slow. |