如何在zsh中为kill命令启用选项卡完成+箭头键选择?

时间:2021-03-06 14:57:24

标签: zsh zsh-completion

有什么办法可以在zsh中为kill命令启用方向键选择吗?

例如

$ kill <TAB>

为我提供所有当前正在运行的进程的列表,然后我可以使用箭头键选择一个特定的进程。

但是,当我这样做时:

$ kill foo<TAB>

我获得了名称中带有 foo 的所有进程的列表,但我无法通过箭头键从列表中选择特定的进程。

我已尝试查看 kill 的 compdef 文件,但对 zsh 完成系统的工作方式不够熟悉,无法了解需要更改哪些内容才能使其正常工作。

如果它有任何帮助,这是我当前用于 kill 的 compdef,至少我认为它是。我系统上的文件位置是:/usr/share/zsh/functions/Completion/Zsh/_kill

#compdef kill

local curcontext="$curcontext" line state ret=1
typeset -A opt_args

_arguments -C \
  '(-s -l 1)-n[specify signal number]:signal number' \
  '(-n -l 1)-s[specify signal name]:signal:_signals -s' \
  '(-n -s)-l[list signal names or numbers of specified signals]:*:signal:_signals' \
  '(-n -s -l)1::signal:_signals -p -s' \
  '*:processes:->processes' && ret=0
  
if [[ -n "$state" ]]; then
  local pgrp='process-groups:: _wanted '
  [[ -n "$opt_args[(i)-[ns]]${${(@)line:#--}}" && -prefix - ]] && pgrp+='-x '
  pgrp+="process-groups expl 'process-group' compadd - 0"
  _alternative \
    'processes:: _pids' \
    'jobs:: _jobs -t' $pgrp && ret=0
fi

return ret

1 个答案:

答案 0 :(得分:1)

只需安装 zsh-autocomplete,一切都会完美运行。 ?