Go forward to Sample Init File.
Go backward to Readline Init File Syntax.
Go up to Readline Init File.
Conditional Init Constructs
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.
The `$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.
The `mode=' form of the `$if' directive is used to test
whether Readline is in `emacs' or `vi' mode. This may be
used in conjunction with the `set keymap' command, for
instance, to set bindings in the `emacs-standard' and
`emacs-ctlx' keymaps only if Readline is starting out in
The `term=' 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
`=' is tested against the full name of the terminal and the
portion of the terminal name before the first `-'. This
allows `sun' to match both `sun' and `sun-cmd', for instance.
The APPLICATION construct is used to include
application-specific settings. Each program using the
Readline library sets the APPLICATION NAME, and you can test
for it. 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:
# Quote the current or previous word
This command, as you saw in the previous example, terminates an
Commands in this branch of the `$if' directive are executed if the