mirror of
https://github.com/fish-shell/fish-shell
synced 2024-11-15 01:17:45 +00:00
444f9f8715
This allows for marking certain bindings as part of a preset, which allows us to - only erase those when switching presets - go back to the preset binding when erasing a user binding - only show user customization if requested - make bare bind statements in config.fish work (!!!11elf!!!) Fixes #5191. Fixes #3699.
18 lines
694 B
Fish
18 lines
694 B
Fish
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
|