タブを完成できるように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
ただし、これにより、すべてのファイルの出力が2倍になります(つまり、各.foo
ファイルは拡張子付きと拡張子なしで一覧表示されます)。これを回避する方法はありますか?