#compdef hash local expl if [[ "$words[2]" = -*d* ]]; then if compset -P 1 '*='; then _wanted -C -d-value files expl directories _path_files -/ else _wanted -C -d named-directories expl 'named directory' \ compadd -q -S '=' - "${(@k)nameddirs}" fi elif compset -P 1 '*='; then _wanted -C value values expl 'executable file' && _files "$expl[@]" -g '*(-*)' else _wanted -C name commands expl command compadd -q -S '=' - "${(@k)commands}" fi