#compdef unhash local fl="$words[2]" args args=() [[ "$fl" = -*d* ]] && args=( 'named-directories:named directory:compadd - ${(@k)nameddirs}' ) [[ "$fl" = -*a* ]] && args=( "$args[@]" 'aliases:alias:compadd - ${(@k)aliases} ${(@k)galiases} ${(@k)dis-aliases} ${(@k)dis-galiases}' ) [[ "$fl" != -* ]] && args=( 'commands:: _command_names -e' ) _alternative "$args[@]"