diff --git a/share/functions/fish_default_key_bindings.fish b/share/functions/fish_default_key_bindings.fish index c057754ab..e679fac08 100644 --- a/share/functions/fish_default_key_bindings.fish +++ b/share/functions/fish_default_key_bindings.fish @@ -1,6 +1,10 @@ function fish_default_key_bindings -d "Default (Emacs-like) key bindings for fish" -a mode if not set -q mode[1] + if test "$fish_key_bindings" != "fish_default_key_bindings" + set fish_key_bindings fish_default_key_bindings # This triggers the handler, which calls us again and ensures the user_key_bindings are executed + return + end # Clear earlier bindings, if any bind --erase --all end diff --git a/share/functions/fish_vi_key_bindings.fish b/share/functions/fish_vi_key_bindings.fish index c2a40361e..1956a11bd 100644 --- a/share/functions/fish_vi_key_bindings.fish +++ b/share/functions/fish_vi_key_bindings.fish @@ -1,4 +1,8 @@ function fish_vi_key_bindings --description 'vi-like key bindings for fish' + if test "$fish_key_bindings" != "fish_vi_key_bindings" + set fish_key_bindings fish_vi_key_bindings # This triggers the handler, which calls us again and ensures the user_key_bindings are executed + return + end # The default escape timeout is 300ms. But for users of Vi bindings that can # be slightly annoying when trying to switch to Vi "normal" mode. Too, # vi-mode users are unlikely to use escape-as-meta. So set a much shorter