#autoload # option: -p - needs a `_' prefix local us local -a disp list expl list=( complete approximate correct match expand list menu oldlist ignored prefix history ) zparseopts -D -K -E 'p=us' [[ -n "$us" ]] && us='_' zstyle -t ":completion:${curcontext}:completers" prefix-hidden && disp=(-d list) _wanted completers expl 'completer' \ compadd "$@" "$disp[@]" - "$us${^list[@]}"