Instead of completing the whole line, which doesn't work, only complete the pid, but still show the whole line so the user can see which command was which.
Users can also let the parameter expansion sort the completion by date instead of by pid, by setting zstyle ':completion:*:*:systemd-coredumpctl:*' sort no so that the zshcompsys doesn't sort the _describe function for only systemd-coredumpctl. --- shell-completion/systemd-zsh-completion.zsh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/shell-completion/systemd-zsh-completion.zsh b/shell-completion/systemd-zsh-completion.zsh index b29a2e9..411646e 100644 --- a/shell-completion/systemd-zsh-completion.zsh +++ b/shell-completion/systemd-zsh-completion.zsh @@ -896,12 +896,13 @@ _systemd-coredumpctl_command(){ _describe -t commands 'systemd-coredumpctl command' _systemd_coredumpctl_cmds else local curcontext="$curcontext" - local -a dumps + local -a _dumps cmd="${${_systemd_coredumpctl_cmds[(r)$words[1]:*]%%:*}}" if (( $#cmd )); then - dumps=( "${(f)$(_call_program dumps "systemd-coredumpctl list 2>/dev/null")}" ) - if [[ -n "$dumps" ]]; then - compadd "${dumps[@]}" + # user can set zstyle ':completion:*:*:systemd-coredumpctl:*' sort no for coredumps to be ordered by date, otherwise they get ordered by pid + _dumps=( "${(foa)$(systemd-coredumpctl list | awk 'BEGIN{OFS=":"} /^\s/ {sub(/[[ \t]+/, ""); print $5,$0}' 2>/dev/null)}" ) + if [[ -n "$_dumps" ]]; then + _describe -t pids 'coredumps' _dumps else _message "no coredumps" fi -- 1.8.2.2 _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel