Binding Keys
------------
Key sequences are associate with functions through the keymap.
Readline has several internal keymaps: `emacs_standard_keymap',
`emacs_meta_keymap', `emacs_ctlx_keymap', `vi_movement_keymap', and
`vi_insertion_keymap'. `emacs_standard_keymap' is the default, and the
examples in this manual assume that.
Since `readline()' installs a set of default key bindings the first
time it is called, there is always the danger that a custom binding
installed before the first call to `readline()' will be overridden. An
alternate mechanism is to install custom key bindings in an
initialization function assigned to the `rl_startup_hook' variable
(Note:Readline Variables).
These functions manage key bindings.
- Function: int rl_bind_key (int key, rl_command_func_t *function)
Binds KEY to FUNCTION in the currently active keymap. Returns
non-zero in the case of an invalid KEY.
- Function: int rl_bind_key_in_map (int key, rl_command_func_t
*function, Keymap map)
Bind KEY to FUNCTION in MAP. Returns non-zero in the case of an
invalid KEY.
- Function: int rl_unbind_key (int key)
Bind KEY to the null function in the currently active keymap.
Returns non-zero in case of error.
- Function: int rl_unbind_key_in_map (int key, Keymap map)
Bind KEY to the null function in MAP. Returns non-zero in case of
error.
- Function: int rl_unbind_function_in_map (rl_command_func_t
*function, Keymap map)
Unbind all keys that execute FUNCTION in MAP.
- Function: int rl_unbind_command_in_map (const char *command, Keymap
map)
Unbind all keys that are bound to COMMAND in MAP.
- Function: int rl_set_key (const char *keyseq, rl_command_func_t
*function, Keymap map)
Bind the key sequence represented by the string KEYSEQ to the
function FUNCTION. This makes new keymaps as necessary. The
initial keymap in which to do bindings is MAP.
- Function: int rl_generic_bind (int type, const char *keyseq, char
*data, Keymap map)
Bind the key sequence represented by the string KEYSEQ to the
arbitrary pointer DATA. TYPE says what kind of data is pointed to
by DATA; this can be a function (`ISFUNC'), a macro (`ISMACR'), or
a keymap (`ISKMAP'). This makes new keymaps as necessary. The
initial keymap in which to do bindings is MAP.
- Function: int rl_parse_and_bind (char *line)
Parse LINE as if it had been read from the `inputrc' file and
perform any key bindings and variable assignments found (Note:Readline Init File).
- Function: int rl_read_init_file (const char *filename)
Read keybindings and variable assignments from FILENAME (Note:Readline Init File).