1103 lines
		
	
	
	
		
			30 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			1103 lines
		
	
	
	
		
			30 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\"
 | |
| .\" MAN PAGE COMMENTS to
 | |
| .\"
 | |
| .\"	Chet Ramey
 | |
| .\"	Information Network Services
 | |
| .\"	Case Western Reserve University
 | |
| .\"	chet@ins.CWRU.Edu
 | |
| .\"
 | |
| .\"	Last Change: Mon Jul  8 13:07:48 EDT 1996
 | |
| .\"
 | |
| .TH READLINE 3 "1996 July 8" GNU
 | |
| .\"
 | |
| .\" File Name macro.  This used to be `.PN', for Path Name,
 | |
| .\" but Sun doesn't seem to like that very much.
 | |
| .\"
 | |
| .de FN
 | |
| \fI\|\\$1\|\fP
 | |
| ..
 | |
| .SH NAME
 | |
| readline \- get a line from a user with editing
 | |
| .SH SYNOPSIS
 | |
| .LP
 | |
| .nf
 | |
| .ft B
 | |
| #include <readline.h>
 | |
| #include <history.h>
 | |
| .ft
 | |
| .fi
 | |
| .LP
 | |
| .nf
 | |
| .ft B
 | |
| char *readline (prompt)
 | |
| char *prompt;
 | |
| .ft
 | |
| .fi
 | |
| .SH COPYRIGHT
 | |
| .if n Readline is Copyright (C) 1989, 1991, 1993, 1995, 1996 by the Free Software Foundation, Inc.
 | |
| .if t Readline is Copyright \(co 1989, 1991, 1993, 1995, 1996 by the Free Software Foundation, Inc.
 | |
| .SH DESCRIPTION
 | |
| .LP
 | |
| .B readline
 | |
| will read a line from the terminal
 | |
| and return it, using
 | |
| .B prompt
 | |
| as a prompt.  If 
 | |
| .B prompt
 | |
| is null, no prompt is issued.  The line returned is allocated with
 | |
| .IR malloc (3),
 | |
| so the caller must free it when finished.  The line returned
 | |
| has the final newline removed, so only the text of the line
 | |
| remains.
 | |
| .LP
 | |
| .B readline
 | |
| offers editing capabilities while the user is entering the
 | |
| line.
 | |
| By default, the line editing commands
 | |
| are similar to those of emacs.
 | |
| A vi\-style line editing interface is also available.
 | |
| .SH RETURN VALUE
 | |
| .LP
 | |
| .B readline
 | |
| returns the text of the line read.  A blank line
 | |
| returns the empty string.  If
 | |
| .B EOF
 | |
| is encountered while reading a line, and the line is empty,
 | |
| .B NULL
 | |
| is returned.  If an
 | |
| .B EOF
 | |
| is read with a non\-empty line, it is
 | |
| treated as a newline.
 | |
| .SH NOTATION
 | |
| .LP
 | |
| An emacs-style notation is used to denote
 | |
| keystrokes.  Control keys are denoted by C\-\fIkey\fR, e.g., C\-n
 | |
| means Control\-N.  Similarly, 
 | |
| .I meta
 | |
| keys are denoted by M\-\fIkey\fR, so M\-x means Meta\-X.  (On keyboards
 | |
| without a 
 | |
| .I meta
 | |
| key, M\-\fIx\fP means ESC \fIx\fP, i.e., press the Escape key
 | |
| then the
 | |
| .I x
 | |
| key.  This makes ESC the \fImeta prefix\fP.
 | |
| The combination M\-C\-\fIx\fP means ESC\-Control\-\fIx\fP,
 | |
| or press the Escape key
 | |
| then hold the Control key while pressing the
 | |
| .I x
 | |
| key.)
 | |
| .PP
 | |
| Readline commands may be given numeric
 | |
| .IR arguments ,
 | |
| which normally act as a repeat count.  Sometimes, however, it is the
 | |
| sign of the argument that is significant.  Passing a negative argument
 | |
| to a command that acts in the forward direction (e.g., \fBkill\-line\fP)
 | |
| causes that command to act in a backward direction.  Commands whose
 | |
| behavior with arguments deviates from this are noted.
 | |
| .PP
 | |
| When a command is described as \fIkilling\fP text, the text
 | |
| deleted is saved for possible future retrieval
 | |
| (\fIyanking\fP).  The killed text is saved in a
 | |
| \fIkill ring\fP.  Consecutive kills cause the text to be
 | |
| accumulated into one unit, which can be yanked all at once. 
 | |
| Commands which do not kill text separate the chunks of text
 | |
| on the kill ring.
 | |
| .SH INITIALIZATION FILE
 | |
| .LP
 | |
| Readline is customized by putting commands in an initialization
 | |
| file (the \fIinputrc\fP file).
 | |
| The name of this file is taken from the value of the
 | |
| .B INPUTRC
 | |
| environment variable.  If that variable is unset, the default is
 | |
| .IR ~/.inputrc .
 | |
| When a program which uses the readline library starts up, the
 | |
| init file is read, and the key bindings and variables are set.
 | |
| There are only a few basic constructs allowed in the
 | |
| readline init file.  Blank lines are ignored.
 | |
| Lines beginning with a \fB#\fP are comments.
 | |
| Lines beginning with a \fB$\fP indicate conditional constructs.
 | |
| Other lines denote key bindings and variable settings.
 | |
| Each program using this library may add its own commands
 | |
| and bindings.
 | |
| .PP
 | |
| For example, placing
 | |
| .RS
 | |
| .PP
 | |
| M\-Control\-u: universal\-argument
 | |
| .RE
 | |
| or
 | |
| .RS
 | |
| C\-Meta\-u: universal\-argument
 | |
| .RE
 | |
| into the 
 | |
| .I inputrc
 | |
| would make M\-C\-u execute the readline command
 | |
| .IR universal\-argument .
 | |
| .PP
 | |
| The following symbolic character names are recognized while
 | |
| processing key bindings:
 | |
| .IR RUBOUT ,
 | |
| .IR DEL ,
 | |
| .IR ESC ,
 | |
| .IR LFD ,
 | |
| .IR NEWLINE ,
 | |
| .IR RET ,
 | |
| .IR RETURN ,
 | |
| .IR SPC ,
 | |
| .IR SPACE ,
 | |
| and
 | |
| .IR TAB .
 | |
| In addition to command names, readline allows keys to be bound
 | |
| to a string that is inserted when the key is pressed (a \fImacro\fP).
 | |
| .PP
 | |
| .SS Key Bindings
 | |
| .PP
 | |
| The syntax for controlling key bindings in the
 | |
| .I inputrc
 | |
| file is simple.  All that is required is the name of the
 | |
| command or the text of a macro and a key sequence to which
 | |
| it should be bound. The name may be specified in one of two ways:
 | |
| as a symbolic key name, possibly with \fIMeta\-\fP or \fIControl\-\fP
 | |
| prefixes, or as a key sequence.
 | |
| When using the form \fBkeyname\fP:\fIfunction-name\fP or \fImacro\fP,
 | |
| .I keyname
 | |
| is the name of a key spelled out in English.  For example:
 | |
| .sp
 | |
| .RS
 | |
| Control\-u: universal\-argument
 | |
| .br
 | |
| Meta\-Rubout: backward\-kill\-word
 | |
| .br
 | |
| Control\-o: ">&output"
 | |
| .RE
 | |
| .LP
 | |
| In the above example,
 | |
| .I C\-u
 | |
| is bound to the function
 | |
| .BR universal\-argument ,
 | |
| .I M-DEL
 | |
| is bound to the function
 | |
| .BR backward\-kill\-word ,
 | |
| and
 | |
| .I C\-o
 | |
| is bound to run the macro
 | |
| expressed on the right hand side (that is, to insert the text
 | |
| .I >&output
 | |
| into the line).
 | |
| .PP
 | |
| In the second form, \fB"keyseq"\fP:\fIfunction\-name\fP or \fImacro\fP,
 | |
| .B keyseq
 | |
| differs from
 | |
| .B keyname
 | |
| above in that strings denoting
 | |
| an entire key sequence may be specified by placing the sequence
 | |
| within double quotes.  Some GNU Emacs style key escapes can be
 | |
| used, as in the following example.
 | |
| .sp
 | |
| .RS
 | |
| "\eC\-u": universal\-argument
 | |
| .br
 | |
| "\eC\-x\eC\-r": re\-read\-init\-file
 | |
| .br
 | |
| "\ee[11~": "Function Key 1"
 | |
| .RE
 | |
| .PP
 | |
| In this example,
 | |
| .I C-u
 | |
| is again bound to the function
 | |
| .BR universal\-argument .
 | |
| .I "C-x C-r"
 | |
| is bound to the function
 | |
| .BR re\-read\-init\-file ,
 | |
| and 
 | |
| .I "ESC [ 1 1 ~"
 | |
| is bound to insert the text
 | |
| .BR "Function Key 1" .
 | |
| The full set of escape sequences is
 | |
| .RS
 | |
| .TP
 | |
| .B \eC\-
 | |
| control prefix
 | |
| .TP
 | |
| .B \eM\-
 | |
| meta prefix
 | |
| .TP
 | |
| .B \ee
 | |
| an escape character
 | |
| .TP
 | |
| .B \e\e
 | |
| backslash
 | |
| .TP
 | |
| .B \e"
 | |
| literal "
 | |
| .TP
 | |
| .B \e'
 | |
| literal '
 | |
| .RE
 | |
| .PP
 | |
| When entering the text of a macro, single or double quotes should
 | |
| be used to indicate a macro definition.  Unquoted text
 | |
| is assumed to be a function name.  Backslash
 | |
| will quote any character in the macro text, including " and '.
 | |
| .PP
 | |
| .B Bash
 | |
| allows the current readline key bindings to be displayed or modified
 | |
| with the
 | |
| .B bind
 | |
| builtin command.  The editing mode may be switched during interactive
 | |
| use by using the
 | |
| .B \-o
 | |
| option to the
 | |
| .B set
 | |
| builtin command.  Other programs using this library provide
 | |
| similar mechanisms.  The
 | |
| .I inputrc
 | |
| file may be edited and re-read if a program does not provide
 | |
| any other means to incorporate new bindings.
 | |
| .SS Variables
 | |
| .PP
 | |
| Readline has variables that can be used to further customize its
 | |
| behavior.  A variable may be set in the
 | |
| .I inputrc
 | |
| file with a statement of the form
 | |
| .RS
 | |
| .PP
 | |
| \fBset\fP \fIvariable\-name\fP \fIvalue\fP
 | |
| .RE
 | |
| .PP
 | |
| Except where noted, readline variables can take the values
 | |
| .B On
 | |
| or
 | |
| .BR Off .
 | |
| The variables and their default values are:
 | |
| .PP
 | |
| .PD 0
 | |
| .TP
 | |
| .B bell\-style (audible)
 | |
| Controls what happens when readline wants to ring the terminal bell.
 | |
| If set to \fBnone\fP, readline never rings the bell.  If set to
 | |
| \fBvisible\fP, readline uses a visible bell if one is available.
 | |
| If set to \fBaudible\fP, readline attempts to ring the terminal's bell.
 | |
| .TP
 | |
| .B comment\-begin (``#'')
 | |
| The string that is inserted in \fBvi\fP mode when the
 | |
| .B insert\-comment
 | |
| command is executed.
 | |
| This command is bound to
 | |
| .B M\-#
 | |
| in emacs mode and to
 | |
| .B #
 | |
| in vi command mode.
 | |
| .TP
 | |
| .B completion\-query\-items (100)
 | |
| This determines when the user is queried about viewing
 | |
| the number of possible completions
 | |
| generated by the \fBpossible\-completions\fP command.
 | |
| It may be set to any integer value greater than or equal to
 | |
| zero.  If the number of possible completions is greater than
 | |
| or equal to the value of this variable, the user is asked whether
 | |
| or not he wishes to view them; otherwise they are simply listed
 | |
| on the terminal.
 | |
| .TP
 | |
| .B convert\-meta (On)
 | |
| If set to \fBOn\fP, readline will convert characters with the
 | |
| eighth bit set to an ASCII key sequence
 | |
| by stripping the eighth bit and prepending an
 | |
| escape character (in effect, using escape as the \fImeta prefix\fP).
 | |
| .TP
 | |
| .B disable\-completion (Off)
 | |
| If set to \fBOn\fP, readline will inhibit word completion.  Completion 
 | |
| characters will be inserted into the line as if they had been
 | |
| mapped to \fBself-insert\fP.
 | |
| .TP
 | |
| .B editing\-mode (emacs)
 | |
| Controls whether readline begins with a set of key bindings similar
 | |
| to \fIemacs\fP or \fIvi\fP.
 | |
| .B editing\-mode
 | |
| can be set to either
 | |
| .B emacs
 | |
| or
 | |
| .BR vi .
 | |
| .TP
 | |
| .B enable\-keypad (Off)
 | |
| When set to \fBOn\fP, readline will try to enable the application
 | |
| keypad when it is called.  Some systems need this to enable the
 | |
| arrow keys.
 | |
| .TP
 | |
| .B expand\-tilde (Off)
 | |
| If set to \fBon\fP, tilde expansion is performed when readline
 | |
| attempts word completion.
 | |
| .TP
 | |
| .B horizontal\-scroll\-mode (Off)
 | |
| When set to \fBOn\fP, makes readline use a single line for display,
 | |
| scrolling the input horizontally on a single screen line when it
 | |
| becomes longer than the screen width rather than wrapping to a new line.
 | |
| .TP
 | |
| .B keymap (emacs)
 | |
| Set the current readline keymap.  The set of legal keymap names is
 | |
| \fIemacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,
 | |
| vi-command\fP, and
 | |
| .IR vi-insert .
 | |
| \fIvi\fP is equivalent to \fIvi-command\fP; \fIemacs\fP is
 | |
| equivalent to \fIemacs-standard\fP.  The default value is
 | |
| .IR emacs ;
 | |
| the value of
 | |
| .B editing\-mode
 | |
| also affects the default keymap.
 | |
| .TP
 | |
| .B mark\-directories (On)
 | |
| If set to \fBOn\fP, completed directory names have a slash
 | |
| appended.
 | |
| .TP
 | |
| .B mark\-modified\-lines (Off)
 | |
| If set to \fBOn\fP, history lines that have been modified are displayed
 | |
| with a preceding asterisk (\fB*\fP).
 | |
| .TP
 | |
| .B meta\-flag (Off)
 | |
| If set to \fBOn\fP, readline will enable eight-bit input (that is,
 | |
| it will not strip the high bit from the characters it reads),
 | |
| regardless of what the terminal claims it can support.
 | |
| .TP
 | |
| .B output\-meta (Off)
 | |
| If set to \fBOn\fP, readline will display characters with the
 | |
| eighth bit set directly rather than as a meta-prefixed escape
 | |
| sequence.
 | |
| .TP
 | |
| .B show\-all\-if\-ambiguous (Off)
 | |
| This alters the default behavior of the completion functions.  If
 | |
| set to
 | |
| .BR on ,
 | |
| words which have more than one possible completion cause the
 | |
| matches to be listed immediately instead of ringing the bell.
 | |
| .TP
 | |
| .B visible\-stats (Off)
 | |
| If set to \fBOn\fP, a character denoting a file's type as reported  
 | |
| by \fBstat\fP(2) is appended to the filename when listing possible
 | |
| completions.
 | |
| .PD
 | |
| .SS Conditional Constructs
 | |
| .PP
 | |
| Readline implements a facility similar in spirit to the conditional
 | |
| compilation features of the C preprocessor which allows key
 | |
| bindings and variable settings to be performed as the result
 | |
| of tests.  There are three parser directives used.
 | |
| .IP \fB$if\fP
 | |
| The 
 | |
| .B $if
 | |
| construct allows bindings to be made based on the
 | |
| editing mode, the terminal being used, or the application using
 | |
| readline.  The text of the test extends to the end of the line;
 | |
| no characters are required to isolate it.
 | |
| .RS
 | |
| .IP \fBmode\fP
 | |
| The \fBmode=\fP form of the \fB$if\fP directive is used to test
 | |
| whether readline is in emacs or vi mode.
 | |
| This may be used in conjunction
 | |
| with the \fBset keymap\fP command, for instance, to set bindings in
 | |
| the \fIemacs-standard\fP and \fIemacs-ctlx\fP keymaps only if
 | |
| readline is starting out in emacs mode.
 | |
| .IP \fBterm\fP
 | |
| The \fBterm=\fP form may be used to include terminal-specific
 | |
| key bindings, perhaps to bind the key sequences output by the
 | |
| terminal's function keys.  The word on the right side of the
 | |
| .B =
 | |
| is tested against the full name of the terminal and the portion
 | |
| of the terminal name before the first \fB\-\fP.  This allows
 | |
| .I sun
 | |
| to match both
 | |
| .I sun
 | |
| and
 | |
| .IR sun\-cmd ,
 | |
| for instance.
 | |
| .IP \fBapplication\fP
 | |
| The \fBapplication\fP construct is used to include
 | |
| application-specific settings.  Each program using the readline
 | |
| library sets the \fIapplication name\fP, and an initialization
 | |
| file can test for a particular value.
 | |
| This could be used to bind key sequences to functions useful for
 | |
| a specific program.  For instance, the following command adds a
 | |
| key sequence that quotes the current or previous word in Bash:
 | |
| .RS
 | |
| .nf
 | |
| \fB$if\fP bash
 | |
| # Quote the current or previous word
 | |
| "\eC-xq": "\eeb\e"\eef\e""
 | |
| \fB$endif\fP
 | |
| .fi
 | |
| .RE
 | |
| .RE
 | |
| .IP \fB$endif\fP
 | |
| This command, as you saw in the previous example, terminates an
 | |
| \fB$if\fP command.
 | |
| .IP \fB$else\fP
 | |
| Commands in this branch of the \fB$if\fP directive are executed if
 | |
| the test fails.
 | |
| .SH SEARCHING
 | |
| .PP
 | |
| Readline provides commands for searching through the command history
 | |
| for lines containing a specified string.
 | |
| There are two search modes:
 | |
| .I incremental
 | |
| and
 | |
| .IR non-incremental .
 | |
| .PP
 | |
| Incremental searches begin before the user has finished typing the
 | |
| search string.
 | |
| As each character of the search string is typed, readline displays
 | |
| the next entry from the history matching the string typed so far.
 | |
| An incremental search requires only as many characters as needed to
 | |
| find the desired history entry.
 | |
| The Escape character is used to terminate an incremental search.
 | |
| Control-J will also terminate the search.
 | |
| Control-G will abort an incremental search and restore the original
 | |
| line.
 | |
| When the search is terminated, the history entry containing the
 | |
| search string becomes the current line.
 | |
| To find other matching entries in the history list, type Control-S or
 | |
| Control-R as appropriate.
 | |
| This will search backward or forward in the history for the next
 | |
| line matching the search string typed so far.
 | |
| Any other key sequence bound to a readline command will terminate
 | |
| the search and execute that command.
 | |
| For instance, a \fInewline\fP will terminate the search and accept
 | |
| the line, thereby executing the command from the history list.
 | |
| .PP
 | |
| Non-incremental searches read the entire search string before starting
 | |
| to search for matching history lines.  The search string may be
 | |
| typed by the user or part of the contents of the current line.
 | |
| .SH EDITING COMMANDS
 | |
| .PP
 | |
| The following is a list of the names of the commands and the default
 | |
| key sequences to which they are bound.
 | |
| Command names without an accompanying key sequence are unbound by default.
 | |
| .SS Commands for Moving
 | |
| .PP
 | |
| .PD 0
 | |
| .TP
 | |
| .B beginning\-of\-line (C\-a)
 | |
| Move to the start of the current line.
 | |
| .TP
 | |
| .B end\-of\-line (C\-e)
 | |
| Move to the end of the line.
 | |
| .TP
 | |
| .B forward\-char (C\-f)
 | |
| Move forward a character.
 | |
| .TP
 | |
| .B backward\-char (C\-b)
 | |
| Move back a character.
 | |
| .TP
 | |
| .B forward\-word (M\-f)
 | |
| Move forward to the end of the next word.  Words are composed of
 | |
| alphanumeric characters (letters and digits).
 | |
| .TP
 | |
| .B backward\-word (M\-b)
 | |
| Move back to the start of this, or the previous, word.  Words are
 | |
| composed of alphanumeric characters (letters and digits).
 | |
| .TP
 | |
| .B clear\-screen (C\-l)
 | |
| Clear the screen leaving the current line at the top of the screen.
 | |
| With an argument, refresh the current line without clearing the
 | |
| screen.
 | |
| .TP
 | |
| .B redraw\-current\-line
 | |
| Refresh the current line.
 | |
| .PD
 | |
| .SS Commands for Manipulating the History
 | |
| .PP
 | |
| .PD 0
 | |
| .TP
 | |
| .B accept\-line (Newline, Return)
 | |
| Accept the line regardless of where the cursor is.  If this line is
 | |
| non-empty, add it to the history list. If the line is a modified
 | |
| history line, then restore the history line to its original state.
 | |
| .TP
 | |
| .B previous\-history (C\-p)
 | |
| Fetch the previous command from the history list, moving back in
 | |
| the list.
 | |
| .TP
 | |
| .B next\-history (C\-n)
 | |
| Fetch the next command from the history list, moving forward in the
 | |
| list.
 | |
| .TP
 | |
| .B beginning\-of\-history (M\-<)
 | |
| Move to the first line in the history.
 | |
| .TP
 | |
| .B end\-of\-history (M\->)
 | |
| Move to the end of the input history, i.e., the line currently being
 | |
| entered.
 | |
| .TP
 | |
| .B reverse\-search\-history (C\-r)
 | |
| Search backward starting at the current line and moving `up' through
 | |
| the history as necessary.  This is an incremental search.
 | |
| .TP
 | |
| .B forward\-search\-history (C\-s)
 | |
| Search forward starting at the current line and moving `down' through
 | |
| the history as necessary.  This is an incremental search.
 | |
| .TP
 | |
| .B non\-incremental\-reverse\-search\-history (M\-p)
 | |
| Search backward through the history starting at the current line
 | |
| using a non-incremental search for a string supplied by the user.
 | |
| .TP
 | |
| .B non\-incremental\-forward\-search\-history (M\-n)
 | |
| Search forward through the history using a non-incremental search
 | |
| for a string supplied by the user.
 | |
| .TP
 | |
| .B history\-search\-forward
 | |
| Search forward through the history for the string of characters
 | |
| between the start of the current line and the current cursor
 | |
| position (the \fIpoint\fP).
 | |
| This is a non-incremental search.
 | |
| .TP
 | |
| .B history\-search\-backward
 | |
| Search backward through the history for the string of characters
 | |
| between the start of the current line and the point.
 | |
| This is a non-incremental search.
 | |
| .TP
 | |
| .B yank\-nth\-arg (M\-C\-y)
 | |
| Insert the first argument to the previous command (usually
 | |
| the second word on the previous line) at point (the current
 | |
| cursor position).  With an argument
 | |
| .IR n ,
 | |
| insert the \fIn\fPth word from the previous command (the words
 | |
| in the previous command begin with word 0).  A negative argument
 | |
| inserts the \fIn\fPth word from the end of the previous command.
 | |
| .TP
 | |
| .B
 | |
| yank\-last\-arg (M\-.\^, M\-_\^)
 | |
| Insert the last argument to the previous command (the last word of
 | |
| the previous history entry).  With an argument,
 | |
| behave exactly like \fByank\-nth\-arg\fP.
 | |
| .PD
 | |
| .SS Commands for Changing Text
 | |
| .PP
 | |
| .PD 0
 | |
| .TP
 | |
| .B delete\-char (C\-d)
 | |
| Delete the character under the cursor.  If point is at the
 | |
| beginning of the line, there are no characters in the line, and
 | |
| the last character typed was not
 | |
| .BR C\-d ,
 | |
| then return
 | |
| .SM
 | |
| .BR EOF .
 | |
| .TP
 | |
| .B backward\-delete\-char (Rubout)
 | |
| Delete the character behind the cursor.  When given a numeric argument,
 | |
| save the deleted text on the kill ring.
 | |
| .TP
 | |
| .B quoted\-insert (C\-q, C\-v)
 | |
| Add the next character that you type to the line verbatim.  This is
 | |
| how to insert characters like \fBC\-q\fP, for example.
 | |
| .TP
 | |
| .B tab\-insert (M-TAB)
 | |
| Insert a tab character.
 | |
| .TP
 | |
| .B self\-insert (a,\ b,\ A,\ 1,\ !,\ ...)
 | |
| Insert the character typed.
 | |
| .TP
 | |
| .B transpose\-chars (C\-t)
 | |
| Drag the character before point forward over the character at point.
 | |
| Point moves forward as well.  If point is at the end of the line, then
 | |
| transpose the two characters before point.  Negative arguments don't work.
 | |
| .TP
 | |
| .B transpose\-words (M\-t)
 | |
| Drag the word behind the cursor past the word in front of the cursor
 | |
| moving the cursor over that word as well.
 | |
| .TP
 | |
| .B upcase\-word (M\-u)
 | |
| Uppercase the current (or following) word.  With a negative argument,
 | |
| do the previous word, but do not move point.
 | |
| .TP
 | |
| .B downcase\-word (M\-l)
 | |
| Lowercase the current (or following) word.  With a negative argument,
 | |
| do the previous word, but do not move point.
 | |
| .TP
 | |
| .B capitalize\-word (M\-c)
 | |
| Capitalize the current (or following) word.  With a negative argument,
 | |
| do the previous word, but do not move point.
 | |
| .PD
 | |
| .SS Killing and Yanking
 | |
| .PP
 | |
| .PD 0
 | |
| .TP
 | |
| .B kill\-line (C\-k)
 | |
| Kill the text from the current cursor position to the end of the line.
 | |
| .TP
 | |
| .B backward\-kill\-line (C\-x Rubout)
 | |
| Kill backward to the beginning of the line.
 | |
| .TP
 | |
| .B unix\-line\-discard (C\-u)
 | |
| Kill backward from point to the beginning of the line.
 | |
| .\" There is no real difference between this and backward-kill-line
 | |
| .TP
 | |
| .B kill\-whole\-line
 | |
| Kill all characters on the current line, no matter where the
 | |
| cursor is.
 | |
| .TP
 | |
| .B kill\-word  (M\-d)
 | |
| Kill from the cursor to the end of the current word, or if between
 | |
| words, to the end of the next word.  Word boundaries are the same as
 | |
| those used by \fBforward\-word\fP.
 | |
| .TP
 | |
| .B backward\-kill\-word (M\-Rubout)
 | |
| Kill the word behind the cursor.  Word boundaries are the same as
 | |
| those used by \fBbackward\-word\fP.
 | |
| .TP
 | |
| .B unix\-word\-rubout (C\-w)
 | |
| Kill the word behind the cursor, using white space as a word boundary.
 | |
| The word boundaries are different from
 | |
| .BR backward\-kill\-word .
 | |
| .TP
 | |
| .B delete\-horizontal\-space (M\-\e)
 | |
| Delete all spaces and tabs around point.
 | |
| .TP
 | |
| .B kill\-region
 | |
| Kill the text between the point and \fImark\fP (saved cursor position).
 | |
| This text is referred to as the \fIregion\fP.
 | |
| .TP
 | |
| .B copy\-region\-as\-kill
 | |
| Copy the text in the region to the kill buffer.
 | |
| .TP
 | |
| .B copy\-backward\-word
 | |
| Copy the word before point to the kill buffer.
 | |
| .TP
 | |
| .B copy\-forward\-word
 | |
| Copy the word following point to the kill buffer.
 | |
| .TP
 | |
| .B yank (C\-y)
 | |
| Yank the top of the kill ring into the buffer at the cursor.
 | |
| .TP
 | |
| .B yank\-pop (M\-y)
 | |
| Rotate the kill ring, and yank the new top.  Only works following
 | |
| .B yank
 | |
| or
 | |
| .BR yank\-pop .
 | |
| .PD
 | |
| .SS Numeric Arguments
 | |
| .PP
 | |
| .PD 0
 | |
| .TP
 | |
| .B digit\-argument (M\-0, M\-1, ..., M\-\-)
 | |
| Add this digit to the argument already accumulating, or start a new
 | |
| argument.  M\-\- starts a negative argument.
 | |
| .TP
 | |
| .B universal\-argument
 | |
| Each time this is executed, the argument count is multiplied by four.
 | |
| The argument count is initially one, so executing this function the
 | |
| first time makes the argument count four.
 | |
| .PD
 | |
| .SS Completing
 | |
| .PP
 | |
| .PD 0
 | |
| .TP
 | |
| .B complete (TAB)
 | |
| Attempt to perform completion on the text before point.
 | |
| The actual completion performed is application-specific.
 | |
| .BR Bash ,
 | |
| for instance, attempts completion treating the text as a variable
 | |
| (if the text begins with \fB$\fP), username (if the text begins with
 | |
| \fB~\fP), hostname (if the text begins with \fB@\fP), or
 | |
| command (including aliases and functions) in turn.  If none
 | |
| of these produces a match, filename completion is attempted.
 | |
| .BR Gdb ,
 | |
| on the other hand,
 | |
| allows completion of program functions and variables, and
 | |
| only attempts filename completion under certain circumstances.
 | |
| .TP
 | |
| .B possible\-completions (M\-?)
 | |
| List the possible completions of the text before point.
 | |
| .TP
 | |
| .B insert\-completions (M\-*)
 | |
| Insert all completions of the text before point
 | |
| that would have been generated by
 | |
| \fBpossible\-completions\fP.
 | |
| .PD
 | |
| .SS Keyboard Macros
 | |
| .PP
 | |
| .PD 0
 | |
| .TP
 | |
| .B start\-kbd\-macro (C\-x (\^)
 | |
| Begin saving the characters typed into the current keyboard macro.
 | |
| .TP
 | |
| .B end\-kbd\-macro (C\-x )\^)
 | |
| Stop saving the characters typed into the current keyboard macro
 | |
| and store the definition.
 | |
| .TP
 | |
| .B call\-last\-kbd\-macro (C\-x e)
 | |
| Re-execute the last keyboard macro defined, by making the characters
 | |
| in the macro appear as if typed at the keyboard.
 | |
| .PD
 | |
| .SS Miscellaneous
 | |
| .PP
 | |
| .PD 0
 | |
| .TP
 | |
| .B re\-read\-init\-file (C\-x C\-r)
 | |
| Read in the contents of the \fIinputrc\fP file, and incorporate
 | |
| any bindings or variable assignments found there.
 | |
| .TP
 | |
| .B abort (C\-g)
 | |
| Abort the current editing command and
 | |
| ring the terminal's bell (subject to the setting of
 | |
| .BR bell\-style ).
 | |
| .TP
 | |
| .B do\-uppercase\-version (M\-a, M\-b, M\-\fIx\fP, ...)
 | |
| If the metafied character \fIx\fP is lowercase, run the command
 | |
| that is bound to the corresponding uppercase character.
 | |
| .TP
 | |
| .B prefix\-meta (ESC)
 | |
| Metafy the next character typed.
 | |
| .SM
 | |
| .B ESC
 | |
| .B f
 | |
| is equivalent to
 | |
| .BR Meta\-f .
 | |
| .TP
 | |
| .B undo (C\-_, C\-x C\-u)
 | |
| Incremental undo, separately remembered for each line.
 | |
| .TP
 | |
| .B revert\-line (M\-r)
 | |
| Undo all changes made to this line.  This is like typing the
 | |
| .B undo
 | |
| command enough times to return the line to its initial state.
 | |
| .TP
 | |
| .B tilde\-expand (M\-~)
 | |
| Perform tilde expansion on the current word.
 | |
| .TP
 | |
| .B set\-mark (C\-@, M-<space>)
 | |
| Set the mark to the current point.  If a
 | |
| numeric argument is supplied, the mark is set to that position.
 | |
| .TP
 | |
| .B exchange\-point\-and\-mark (C\-x C\-x)
 | |
| Swap the point with the mark.  The current cursor position is set to
 | |
| the saved position, and the old cursor position is saved as the mark.
 | |
| .TP
 | |
| .B character\-search (C\-])
 | |
| A character is read and point is moved to the next occurrence of that
 | |
| character.  A negative count searches for previous occurrences.
 | |
| .TP
 | |
| .B character\-search\-backward (M\-C\-])
 | |
| A character is read and point is moved to the previous occurrence of that
 | |
| character.  A negative count searches for subsequent occurrences.
 | |
| .TP
 | |
| .B insert\-comment (M\-#)
 | |
| The value of the readline
 | |
| .B comment\-begin
 | |
| variable is inserted at the beginning of the current line, and the line
 | |
| is accepted as if a newline had been typed.  This makes the current line
 | |
| a shell comment.
 | |
| .TP
 | |
| .B glob\-expand\-word (C\-x *)
 | |
| The word before point is treated as a pattern for pathname expansion,
 | |
| and the list of matching file names is inserted, replacing the word.
 | |
| .TP
 | |
| .B glob\-list\-expansions (C\-x g)
 | |
| The list of expansions that would have been generated by
 | |
| .B glob\-expand\-word
 | |
| is inserted into the line, replacing the word before point.
 | |
| .TP
 | |
| .B dump\-functions
 | |
| Print all of the functions and their key bindings to the
 | |
| readline output stream.  If a numeric argument is supplied,
 | |
| the output is formatted in such a way that it can be made part
 | |
| of an \fIinputrc\fP file.
 | |
| .TP
 | |
| .B dump\-variables
 | |
| Print all of the settable variables and their values to the
 | |
| readline output stream.  If a numeric argument is supplied,
 | |
| the output is formatted in such a way that it can be made part
 | |
| of an \fIinputrc\fP file.
 | |
| .TP
 | |
| .B dump\-macros
 | |
| Print all of the readline key sequences bound to macros and the
 | |
| strings they ouput.  If a numeric argument is supplied,
 | |
| the output is formatted in such a way that it can be made part
 | |
| of an \fIinputrc\fP file.
 | |
| .TP
 | |
| .B emacs\-editing\-mode (C\-e)
 | |
| When in
 | |
| .B vi
 | |
| editing mode, this causes a switch to
 | |
| .B emacs
 | |
| editing mode.
 | |
| .TP
 | |
| .B vi\-editing\-mode (M\-C\-j)
 | |
| When in
 | |
| .B emacs
 | |
| editing mode, this causes a switch to
 | |
| .B vi
 | |
| editing mode.
 | |
| .PD
 | |
| .SH DEFAULT KEY BINDINGS
 | |
| .LP
 | |
| The following is a list of the default emacs and vi bindings.
 | |
| Characters with the 8th bit set are written as M\-<character>, and
 | |
| are referred to as
 | |
| .I metafied
 | |
| characters.
 | |
| The printable ASCII characters not mentioned in the list of emacs
 | |
| standard bindings are bound to the
 | |
| .I self\-insert
 | |
| function, which just inserts the given character into the input line.
 | |
| In vi insertion mode, all characters not specifically mentioned are
 | |
| bound to
 | |
| .IR self\-insert .
 | |
| Characters assigned to signal generation by
 | |
| .IR stty (1)
 | |
| or the terminal driver, such as C-Z or C-C,
 | |
| retain that function.
 | |
| Upper and lower case
 | |
| .I metafied
 | |
| characters are bound to the same function in the emacs mode
 | |
| meta keymap.
 | |
| The remaining characters are unbound, which causes readline
 | |
| to ring the bell (subject to the setting of the
 | |
| .B bell\-style
 | |
| variable).
 | |
| .SS Emacs Mode
 | |
| .RS +.6i
 | |
| .nf
 | |
| .ta 2.5i
 | |
| .sp
 | |
| Emacs Standard bindings
 | |
| .sp
 | |
| "C-@"  set-mark
 | |
| "C-A"  beginning-of-line
 | |
| "C-B"  backward-char
 | |
| "C-D"  delete-char
 | |
| "C-E"  end-of-line
 | |
| "C-F"  forward-char
 | |
| "C-G"  abort
 | |
| "C-H"  backward-delete-char
 | |
| "C-I"  complete
 | |
| "C-J"  accept-line
 | |
| "C-K"  kill-line
 | |
| "C-L"  clear-screen
 | |
| "C-M"  accept-line
 | |
| "C-N"  next-history
 | |
| "C-P"  previous-history
 | |
| "C-Q"  quoted-insert
 | |
| "C-R"  reverse-search-history
 | |
| "C-S"  forward-search-history
 | |
| "C-T"  transpose-chars
 | |
| "C-U"  unix-line-discard
 | |
| "C-V"  quoted-insert
 | |
| "C-W"  unix-word-rubout
 | |
| "C-Y"  yank
 | |
| "C-]"  character-search
 | |
| "C-_"  undo
 | |
| "\^ " to "/"  self-insert
 | |
| "0"  to "9"  self-insert
 | |
| ":"  to "~"  self-insert
 | |
| "C-?"  backward-delete-char
 | |
| .PP
 | |
| Emacs Meta bindings
 | |
| .sp
 | |
| "M-C-G"  abort
 | |
| "M-C-H"  backward-kill-word
 | |
| "M-C-I"  tab-insert
 | |
| "M-C-J"  vi-editing-mode
 | |
| "M-C-M"  vi-editing-mode
 | |
| "M-C-R"  revert-line
 | |
| "M-C-Y"  yank-nth-arg
 | |
| "M-C-["  complete
 | |
| "M-C-]"  character-search-backward
 | |
| "M-space"  set-mark
 | |
| "M-#"  insert-comment
 | |
| "M-&"  tilde-expand
 | |
| "M-*"  insert-completions
 | |
| "M--"  digit-argument
 | |
| "M-."  yank-last-arg
 | |
| "M-0"  digit-argument
 | |
| "M-1"  digit-argument
 | |
| "M-2"  digit-argument
 | |
| "M-3"  digit-argument
 | |
| "M-4"  digit-argument
 | |
| "M-5"  digit-argument
 | |
| "M-6"  digit-argument
 | |
| "M-7"  digit-argument
 | |
| "M-8"  digit-argument
 | |
| "M-9"  digit-argument
 | |
| "M-<"  beginning-of-history
 | |
| "M-="  possible-completions
 | |
| "M->"  end-of-history
 | |
| "M-?"  possible-completions
 | |
| "M-B"  backward-word
 | |
| "M-C"  capitalize-word
 | |
| "M-D"  kill-word
 | |
| "M-F"  forward-word
 | |
| "M-L"  downcase-word
 | |
| "M-N"  non-incremental-forward-search-history
 | |
| "M-P"  non-incremental-reverse-search-history
 | |
| "M-R"  revert-line
 | |
| "M-T"  transpose-words
 | |
| "M-U"  upcase-word
 | |
| "M-Y"  yank-pop
 | |
| "M-\e"  delete-horizontal-space
 | |
| "M-~"  tilde-expand
 | |
| "M-C-?"  backward-delete-word
 | |
| "M-_"  yank-last-arg
 | |
| .PP
 | |
| Emacs Control-X bindings
 | |
| .sp
 | |
| "C-XC-G"  abort
 | |
| "C-XC-R"  re-read-init-file
 | |
| "C-XC-U"  undo
 | |
| "C-XC-X"  exchange-point-and-mark
 | |
| "C-X("  start-kbd-macro
 | |
| "C-X)"  end-kbd-macro
 | |
| "C-XE"  call-last-kbd-macro
 | |
| "C-XC-?"  backward-kill-line
 | |
| .sp
 | |
| .RE
 | |
| .SS VI Mode bindings
 | |
| .RS +.6i
 | |
| .nf
 | |
| .ta 2.5i
 | |
| .sp
 | |
| .PP
 | |
| VI Insert Mode functions
 | |
| .sp
 | |
| "C-D"  vi-eof-maybe
 | |
| "C-H"  backward-delete-char
 | |
| "C-I"  complete
 | |
| "C-J"  accept-line
 | |
| "C-M"  accept-line
 | |
| "C-R"  reverse-search-history
 | |
| "C-S"  forward-search-history
 | |
| "C-T"  transpose-chars
 | |
| "C-U"  unix-line-discard
 | |
| "C-V"  quoted-insert
 | |
| "C-W"  unix-word-rubout
 | |
| "C-Y"  yank
 | |
| "C-["  vi-movement-mode
 | |
| "C-_"  undo
 | |
| "\^ " to "~"  self-insert
 | |
| "C-?"  backward-delete-char
 | |
| .PP
 | |
| VI Command Mode functions
 | |
| .sp
 | |
| "C-D"  vi-eof-maybe
 | |
| "C-E"  emacs-editing-mode
 | |
| "C-G"  abort
 | |
| "C-H"  backward-char
 | |
| "C-J"  accept-line
 | |
| "C-K"  kill-line
 | |
| "C-L"  clear-screen
 | |
| "C-M"  accept-line
 | |
| "C-N"  next-history
 | |
| "C-P"  previous-history
 | |
| "C-Q"  quoted-insert
 | |
| "C-R"  reverse-search-history
 | |
| "C-S"  forward-search-history
 | |
| "C-T"  transpose-chars
 | |
| "C-U"  unix-line-discard
 | |
| "C-V"  quoted-insert
 | |
| "C-W"  unix-word-rubout
 | |
| "C-Y"  yank
 | |
| "\^ "  forward-char
 | |
| "#"  insert-comment
 | |
| "$"  end-of-line
 | |
| "%"  vi-match
 | |
| "&"  vi-tilde-expand
 | |
| "*"  vi-complete
 | |
| "+"  next-history
 | |
| ","  vi-char-search
 | |
| "-"  previous-history
 | |
| "."  vi-redo
 | |
| "/"  vi-search
 | |
| "0"  beginning-of-line
 | |
| "1" to "9"  vi-arg-digit
 | |
| ";"  vi-char-search
 | |
| "="  vi-complete
 | |
| "?"  vi-search
 | |
| "A"  vi-append-eol
 | |
| "B"  vi-prev-word
 | |
| "C"  vi-change-to
 | |
| "D"  vi-delete-to
 | |
| "E"  vi-end-word
 | |
| "F"  vi-char-search
 | |
| "G"  vi-fetch-history
 | |
| "I"  vi-insert-beg
 | |
| "N"  vi-search-again
 | |
| "P"  vi-put
 | |
| "R"  vi-replace
 | |
| "S"  vi-subst
 | |
| "T"  vi-char-search
 | |
| "U"  revert-line
 | |
| "W"  vi-next-word
 | |
| "X"  backward-delete-char
 | |
| "Y"  vi-yank-to
 | |
| "\e"  vi-complete
 | |
| "^"  vi-first-print
 | |
| "_"  vi-yank-arg
 | |
| "`"  vi-goto-mark
 | |
| "a"  vi-append-mode
 | |
| "b"  vi-prev-word
 | |
| "c"  vi-change-to
 | |
| "d"  vi-delete-to
 | |
| "e"  vi-end-word
 | |
| "f"  vi-char-search
 | |
| "h"  backward-char
 | |
| "i"  vi-insertion-mode
 | |
| "j"  next-history
 | |
| "k"  prev-history
 | |
| "l"  forward-char
 | |
| "m"  vi-set-mark
 | |
| "n"  vi-search-again
 | |
| "p"  vi-put
 | |
| "r"  vi-change-char
 | |
| "s"  vi-subst
 | |
| "t"  vi-char-search
 | |
| "u"  undo
 | |
| "w"  vi-next-word
 | |
| "x"  vi-delete
 | |
| "y"  vi-yank-to
 | |
| "|"  vi-column
 | |
| "~"  vi-change-case
 | |
| .RE
 | |
| .SH "SEE ALSO"
 | |
| .PD 0
 | |
| .TP
 | |
| \fIThe Gnu Readline Library\fP, Brian Fox and Chet Ramey
 | |
| .TP
 | |
| \fIThe Gnu History Library\fP, Brian Fox and Chet Ramey
 | |
| .TP
 | |
| \fIbash\fP(1)
 | |
| .PD
 | |
| .SH FILES
 | |
| .PD 0
 | |
| .TP
 | |
| .FN ~/.inputrc
 | |
| Individual \fBreadline\fP initialization file
 | |
| .PD
 | |
| .SH AUTHORS
 | |
| Brian Fox, Free Software Foundation (primary author)
 | |
| .br
 | |
| bfox@ai.MIT.Edu
 | |
| .PP
 | |
| Chet Ramey, Case Western Reserve University
 | |
| .br
 | |
| chet@ins.CWRU.Edu
 | |
| .SH BUG REPORTS
 | |
| If you find a bug in
 | |
| .B readline,
 | |
| you should report it.  But first, you should
 | |
| make sure that it really is a bug, and that it appears in the latest
 | |
| version of the
 | |
| .B readline
 | |
| library that you have.
 | |
| .PP
 | |
| Once you have determined that a bug actually exists, mail a
 | |
| bug report to \fIbug\-readline\fP@\fIprep.ai.MIT.Edu\fP.
 | |
| If you have a fix, you are welcome to mail that
 | |
| as well!  Suggestions and `philosophical' bug reports may be mailed
 | |
| to \fPbug-readline\fP@\fIprep.ai.MIT.Edu\fP or posted to the Usenet
 | |
| newsgroup
 | |
| .BR gnu.bash.bug .
 | |
| .PP
 | |
| Comments and bug reports concerning
 | |
| this manual page should be directed to
 | |
| .IR chet@ins.CWRU.Edu .
 | |
| .SH BUGS
 | |
| .PP
 | |
| It's too big and too slow.
 | 
