#compdef pkill pgrep ## completion for pkill and pgrep ## Copyright (C) 2008 by Birte Friesel ## License: WTFPL : ## 0. You just DO WHAT THE FUCK YOU WANT TO. ## ## http://finalrewind.org/git/zsh/plain/etc/completions/_pkill ## Not finished ## * Some options lack completion / their completion is inspecific typeset -a arguments typeset expl arguments=( '-c[count matching processes]' '-f[match pattern against full commandline]' '-g[match processes in the listed group IDs]:process group ID' '-G[match processes with this GID]:group:_groups' '-n[select newest matching process]' '-o[select oldest matching process]' '-P[select processes with this parent PID]:process ID:_pids' '-s[select processes with this session ID]:session ID' '-t[select processes with this controlling terminal]:terminal:_terminal' '-u[select processes owned by effective user]:user:_users' '-U[select processes owned by real user]:user:_users' '-v[negate the matching]' '-x[exact matches]' ':pattern:_named_process' ) if [[ ${service} == 'pgrep' ]] { arguments+='-d[set output delimiter]:delimiter' arguments+='-l[list process name]' } function _terminal { _path_files -W /dev } function _named_process { typeset -a pgrep_user typeset IFS=$'\n' if (( EUID )) { pgrep_user=(-u ${EUID}) } _message 'pattern' _wanted pattern expl 'process name' \ compadd ${$(pgrep ${pgrep_user} -l '')#* } } _arguments -s ${arguments} _signals -p