#compdef su local shell comp name usr base expl [[ $words[2] != - ]] (( base=$?+2 )) if [[ CURRENT -eq base ]]; then _description expl user compgen "$expl[@]" -u && return usr=root elif [[ CURRENT -ge base+1 ]]; then usr=$words[base] else return fi shell="${${(M@)${(@f)$(