3

我想调整 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文件都列出有和没有扩展名)。有没有办法解决?

4

1 回答 1

2

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

于 2010-03-23T19:10:23.570 回答