Go to the previous, next section.
There are only a few basic constructs allowed in the Readline init file. Blank lines are ignored. Lines beginning with a # are comments. Lines beginning with a $ indicate conditional constructs (see section Conditional Init Constructs). Other lines denote variable settings and key bindings.
set command within the init file. Here is how you
would specify that you wish to use vi line editing commands:
set editing-mode vi
Right now, there are only a few variables which can be set; so few, in fact, that we just list them here:
editing-mode
editing-mode variable controls which editing mode you are
using. By default, Readline starts up in Emacs editing mode, where
the keystrokes are most similar to Emacs. This variable can be
set to either emacs or vi.
horizontal-scroll-mode
On or Off. Setting it
to On means that the text of the lines that you edit will scroll
horizontally on a single screen line when they are longer than the width
of the screen, instead of wrapping onto a new screen line. By default,
this variable is set to Off.
mark-modified-lines
On, says to display an asterisk
(`*') at the start of history lines which have been modified.
This variable is off by default.
bell-style
none, Readline never rings the bell. If set to
visible, Readline uses a visible bell if one is available.
If set to audible (the default), Readline attempts to ring
the terminal's bell.
comment-begin
vi-comment command is executed. The default value
is "#".
meta-flag
on, Readline will enable eight-bit input (it
will not strip the eighth bit from the characters it reads),
regardless of what the terminal claims it can support. The
default value is off.
convert-meta
on, Readline will convert characters with the
eigth bit set to an ASCII key sequence by stripping the eigth
bit and prepending an ESC character, converting them to a
meta-prefixed key sequence. The default value is on.
output-meta
on, Readline will display characters with the
eighth bit set directly rather than as a meta-prefixed escape
sequence. The default is off.
completion-query-items
100.
keymap
keymap names are
emacs,
emacs-standard,
emacs-meta,
emacs-ctlx,
vi,
vi-move,
vi-command, and
vi-insert.
vi is equivalent to vi-command; emacs is
equivalent to emacs-standard. The default value is emacs.
The value of the editing-mode variable also affects the
default keymap.
show-all-if-ambiguous
on,
words which have more than one possible completion cause the
matches to be listed immediately instead of ringing the bell.
The default value is off.
expand-tilde
on, tilde expansion is performed when Readline
attempts word completion. The default is off.
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 init file. The name of the key can be expressed in different ways, depending on which is most comfortable for you.
Control-u: universal-argument Meta-Rubout: backward-kill-word Control-o: ">&output"
In the above 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).
"\C-u": universal-argument "\C-x\C-r": re-read-init-file "\e[11~": "Function Key 1"
In the above 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 re-read-init-file, and
`ESC [ 1 1 ~' is bound to insert the text `Function Key 1'.
The following escape sequences are available when specifying key
sequences:
\C-
\M-
\e
\\
\"
\'
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 '. For example, the following binding will make C-x \ insert a single \ into the line:
"\C-x\\": "\\"
Go to the previous, next section.