我想调整ZSH,以便可以完成选项卡:

myprog <tab>

使用全部 *.foo 文件中的文件 ~/somedir, ,但是拥有它,以使他们显示 没有.foo 扩大。

有什么办法做到这一点吗?

这就是我到目前为止所拥有的:

#compdef myprog
typeset -A opt_args
local context state line
local -a mydirs
mydirs="(. ~/somedir)"

_arguments -s -S \
    "*:name:->foos" \
    && return 0

case $state in
    (foos)
        _files -W ${mydirs} -g '*.foo(:r)' && return 0
    ;;
esac

return 1

但是,这将显示每个文件的输出的两倍(即,每个文件 .foo 文件列出,并没有其扩展名)。有没有办法解决?

有帮助吗?

解决方案

我相信您需要设置 file-patterns 样式,可能使用 '%p:globbed-files'.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top