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