diff --git a/share/completions/env.fish b/share/completions/env.fish index 7d6fa16ad..cbe6a6b97 100644 --- a/share/completions/env.fish +++ b/share/completions/env.fish @@ -1,6 +1,20 @@ function __fish_complete_env_subcommand argparse -s s/ignore-environment u/unset h-help v-version -- (commandline -opc) (commandline -ct) 2>/dev/null or return + + # argv[1] is `env` or an alias. + set -e argv[1] + + # Remove all VAR=VAL arguments up to the first that isn't + while set -q argv[1] + if string match -q '*=*' -- $argv[1] + set -e argv[1] + else + break + end + end + + # Then complete the rest as if it was given as a command. if set -q argv[1] complete -C"$argv" return 0