diff --git a/home.nix b/home.nix index 6383f13..3201ea1 100644 --- a/home.nix +++ b/home.nix @@ -74,7 +74,24 @@ programs.fish = { enable = true; interactiveShellInit = '' - set fish_greeting + set -U fish_greeting + + if status is-interactive + # Commands to run in interactive sessions can go here + end + + function fish_user_key_bindings + # Execute this once per mode that emacs bindings should be used in + fish_default_key_bindings -M insert + + # Then execute the vi-bindings so they take precedence when there's a conflict. + # Without --no-erase fish_vi_key_bindings will default to + # resetting all bindings. + # The argument specifies the initial mode (insert, "default" or visual). + fish_vi_key_bindings --no-erase insert + + bind \cf 'fg 2>/dev/null; commandline -f repaint' + end ''; };