function __fish_change_key_bindings --argument-names bindings set -g __fish_active_key_bindings $bindings # Allow the user to set the variable universally set -l scope set -q fish_key_bindings or set scope -g # We try to use `set --no-event`, but to avoid leaving the user without bindings # if they run this with an older version we fall back on setting the variable # with an event. if ! set --no-event $scope fish_key_bindings $bindings 2>/dev/null # This triggers the handler, which calls us again set $scope fish_key_bindings $bindings # unless the handler somehow doesn't exist, which would leave us without bindings. # this happens in no-config mode. functions -q __fish_reload_key_bindings and return 1 end end