diff options
Diffstat (limited to 'examples/scripts.noah/remap_keys.bash')
-rw-r--r-- | examples/scripts.noah/remap_keys.bash | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/examples/scripts.noah/remap_keys.bash b/examples/scripts.noah/remap_keys.bash deleted file mode 100644 index aa7c463..0000000 --- a/examples/scripts.noah/remap_keys.bash +++ /dev/null @@ -1,71 +0,0 @@ -# remap_keybindings.bash -# Author: Noah Friedman <friedman@prep.ai.mit.edu> -# Created: 1992-01-11 -# Last modified: 1993-02-03 -# Public domain - -# Conversion to bash v2 syntax done by Chet Ramey - -# Commentary: -# Code: - -#:docstring remap_keybindings: -# Usage: remap_keybindings old_function new_function -# -# Clear all readline keybindings associated with OLD_FUNCTION (a Readline -# function) rebinding them to NEW_FUNCTION (`self-insert' by default) -# -# This requires bash version 1.10 or newer, since previous versions did not -# implement the `bind' builtin. -#:end docstring: - -###;;;autoload -function remap_keybindings () -{ - local unbind_function="$1" - local bind_function="${2:-'self-insert'}" - local bind_output - local arg - - # If they're the same thing, the work has already been done. :-) - if [ "${unbind_function}" = "${bind_function}" ]; then - return 0 - fi - - while : ; do - bind_output="$(bind -q ${unbind_function} 2> /dev/null)" - - case "${bind_output}" in - "${unbind_function} can be invoked via"* ) ;; - "" ) return 1 ;; # probably bad argument to bind - *) return 0 ;; # unbound - esac - - # Format of bind_output is like: - # 'quoted-insert can be invoked via "\C-q", "\C-v".' - # 'self-insert can be invoked via " ", "!", """, "$", "%", ...' - set -- ${bind_output} - shift 5 - - for arg in "$@" ; do - # strip off trailing `.' or `,' - arg=${arg%.}; - arg=${arg%,}; - - case ${arg} in - ..) - # bind -q didn't provide whole list of key bindings; jump - # to top loop to get more - continue 2 ; - ;; - *) - bind "${arg}: ${bind_function}" - ;; - esac - done - done -} - -provide remap_keybindings - -# remap_keybindings.bash ends here |