Contents|Index|Previous|Next
Readline
init syntax
The
following documentation discusses the Readline init syntax.
There are only four constructs
allowed in the ‘˜/.inputrc’
file.
Variable
settings
You can modify the run-time
behavior of Readline by altering the values of variables in Readline using
the set command within the init file. The following discusssion explains
how to change from the default Emacs-like key binding to use vi line editing
commands:
A great deal of run-time behavior
is changeable with the following variables.
Key
bindings
The syntax for controlling
keybindings in the ‘˜/.inputrc’
file is simple. First you have to know the name of the command that you
want to change. The following pages contain tables of the command name,
the default keybinding, and a short description of what the command does.
Once you know the name of
the command, simply place the name of the key you wish to bind the command
to, a colon, and then the name of the command on a line in the ‘˜/.inputrc’
file. The name of the key can be expressed in different ways, depending
on which is most comfortable for you.
keyname: function-name or macro
keyname is the
name of a key spelled out in English. For example:
Control-u: universal-argument
Meta-Rubout: backward-kill-word
Control-o: ">&output"
In the example, C-U
is bound to the function, universal-argument,
and C-O
is bound to run the macro expressed on the right hand side (that is, to
insert the text ‘>&output’
into the line).
"keyseq":
function-name
or macro
keyseq
differs from keyname
in that strings denoting an entire key sequence can be specified. Simply
place the key sequence in double quotes.
GNU Emacs style key escapes
can be used, as in the following example:
"\C-u": universal-argument
"\C-x\C-r": re-read-init-file
"\e[11˜": "Function Key 1"
In the example, C-u
is bound to the function universal-argument
(just as it was in the first example), C-x,
C-r
is bound to the function reread-init-file,
and Esc-[,
1,
1,
˜
is bound to insert the text ‘Function
Key 1’.
Commands
for moving
beginning-of-line (C-a)
Move to the start of the
current line.
end-of-line (C-e)
Move to the end of the line.
forward-char (C-f)
Move forward a character.
backward-char (C-B)
forward-word (M-F)
Move forward to the end
of the next word.
backward-word (M-B)
Move back to the start of
this, or the previous, word.
clear-screen (C-L)
Clear the screen leaving
the current line at the top of the screen.
Commands
for manipulating the history
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 this line was a history line, then restore the history line to
its original state.
previous-history (C-P)
Move ‘up’ through the history
list.
next-history (C-N)
Move ‘down’ through the
history list.
beginning-of-history (M-<)
Move to the first line in
the history.
end-of-history (M->)
Move to the end of the input
history, i.e., the line you are entering.
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.
forward-search-history (C-S)
Search forward starting
at the current line and moving ‘down’ through the history as necessary.
Commands
for changing text
delete-char (C-D)
Delete the character under
the cursor. If the cursor is at the beginning of the line, and there are
no characters in the line, and the last character typed was not C-D,
then return EOF.
backward-delete-char (Rubout)
Delete the character behind
the cursor. A numeric argument says to kill the characters instead of deleting
them.
quoted-insert (C-Q,
C-V)
Add the next character that
you type to the line verbatim. This is how to insert things like C-Q
for example.
tab-insert (M-TAB)
self-insert (a,
b, A, 1, !, ...)
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.
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.
upcase-word (M-U)
Uppercase all letters in
the current (or following) word. With a negative argument, do the previous
word, but do not move point.
downcase-word (M-L)
Lowercase all letters in
the current (or following) word. With a negative argument, do the previous
word, but do not move point.
capitalize-word
(M-C)
Uppercase the first letter
in the current (or following) word. With a negative argument, do the previous
word, but do not move point.
Killing
and yanking
kill-line
(C-K)
Kill the text from the current
cursor position to the end of the line.
backward-kill-line()
Kill backward to the beginning
of the line. This is normally unbound.
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.
backward-kill-word
(M-Delete)
Kill the word behind the
cursor.
unix-line-discard
(C-U)
Kill the whole line the
way C-U
used to in Unix line input. The killed text is saved on the kill-ring.
unix-word-rubout
(C-W)
Kill the word the way C-W
used to in Unix line input. The killed text is saved on the kill-ring.
This is different than backward-kill-word because the word boundaries differ.
yank
(C-Y)
Yank the top of the kill
ring into the buffer at point.
yank-pop
(M-Y)
Rotate the kill-ring, and
yank the new top. You can only do this if the prior command is yank or
yank-pop.
Specifying
numeric arguments
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.
universal-argument ()
Do what C-U
does in GNU Emacs. By default, this is not bound.
Top|Contents|Index|Previous|Next