diff options
Diffstat (limited to 'share/functions/__fish_config_interactive.fish')
-rw-r--r-- | share/functions/__fish_config_interactive.fish | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/share/functions/__fish_config_interactive.fish b/share/functions/__fish_config_interactive.fish index a05d7985..46b6ca24 100644 --- a/share/functions/__fish_config_interactive.fish +++ b/share/functions/__fish_config_interactive.fish @@ -217,8 +217,8 @@ function __fish_config_interactive -d "Initializations that should be performed end end - # Load key bindings - __fish_reload_key_bindings + # Load key bindings. Redirect stderr per #1155 + __fish_reload_key_bindings ^ /dev/null # Repaint screen when window changes size function __fish_winch_handler --on-signal winch @@ -236,12 +236,29 @@ function __fish_config_interactive -d "Initializations that should be performed # The first time a command is not found, look for command-not-found # This is not cheap so we try to avoid doing it during startup + # config.fish already installed a handler for noninteractive command-not-found, + # so delete it here since we are now interactive + functions -e __fish_command_not_found_handler + + # Now install our fancy variant function __fish_command_not_found_setup --on-event fish_command_not_found # Remove fish_command_not_found_setup so we only execute this once functions --erase __fish_command_not_found_setup - # First check in /usr/lib, this is where modern Ubuntus place this command - if test -f /usr/lib/command-not-found + # First check if we are on OpenSUSE since SUSE's handler has no options + # and expects first argument to be a command and second database + # also check if there is command-not-found command. + if begin; test -f /etc/SuSE-release; and type -p command-not-found > /dev/null 2> /dev/null; end + function __fish_command_not_found_handler --on-event fish_command_not_found + /usr/bin/command-not-found $argv + end + # Check for Fedora's handler + else if test -f /usr/libexec/pk-command-not-found + function __fish_command_not_found_handler --on-event fish_command_not_found + /usr/libexec/pk-command-not-found -- $argv + end + # Check in /usr/lib, this is where modern Ubuntus place this command + else if test -f /usr/lib/command-not-found function __fish_command_not_found_handler --on-event fish_command_not_found /usr/lib/command-not-found -- $argv end @@ -253,7 +270,7 @@ function __fish_config_interactive -d "Initializations that should be performed # Use standard fish command not found handler otherwise else function __fish_command_not_found_handler --on-event fish_command_not_found - echo fish: Unknown command "'$argv'" >&2 + __fish_default_command_not_found_handler $argv end end __fish_command_not_found_handler $argv |