function fish_hybrid_key_bindings --description "Vi-style bindings that inherit emacs-style bindings in all modes"
    bind --erase --all --preset # clear earlier bindings, if any

    if test "$fish_key_bindings" != "fish_hybrid_key_bindings"
        # Allow the user to set the variable universally
        set -q fish_key_bindings
        or set -g fish_key_bindings
        # This triggers the handler, which calls us again and ensures the user_key_bindings
        # are executed.
        set fish_key_bindings fish_hybrid_key_bindings
        return
    end

    for mode in default insert visual
        fish_default_key_bindings -M $mode
    end
    fish_vi_key_bindings --no-erase
end
