#autoload # If given the `-m ' option, this tries to complete only pids # of processes whose command line match the `'. local list expl match desc _tags any processes || return 1 if [[ "$1" = -m ]]; then match="${2}*" shift 2 fi _description expl 'process ID' if _style processes description yes; then list=("${(@Mr:COLUMNS-1:)${(f@)$(ps ${=compconfig[ps_listargs]:-$=compconfig[ps_args]} 2>/dev/null)}[2,-1]:#[ ]#${PREFIX}[0-9]#${SUFFIX}[ ]*${~match}}") desc=(-ld list) else desc=() fi compadd "$expl[@]" "$@" "$desc[@]" - \ ${${${(M)${(f)"$(ps $=compconfig[ps_args] 2>/dev/null)"}[2,-1]:#*${~match}}## #}%% *}