| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
1.3.2 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 four parser directives used.
-
$if The
$ifconstruct 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.-
mode The
mode=form of the$ifdirective is used to test whether Readline is inemacsorvimode. This may be used in conjunction with the ‘set keymap’ command, for instance, to set bindings in theemacs-standardandemacs-ctlxkeymaps only if Readline is starting out inemacsmode.-
term 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 both the full name of the terminal and the portion of the terminal name before the first ‘-’. This allowssunto match bothsunandsun-cmd, for instance.-
application 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 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:
$if Bash # Quote the current or previous word "\C-xq": "\eb\"\ef\"" $endif
-
-
$endif This command, as seen in the previous example, terminates an
$ifcommand.-
$else Commands in this branch of the
$ifdirective are executed if the test fails.-
$include This directive takes a single filename as an argument and reads commands and bindings from that file. For example, the following directive reads from ‘/etc/inputrc’:
$include /etc/inputrc
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
