ZSH完了でファイル拡張子を削除する方法は?
-
21-09-2019 - |
質問
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
ファイルは、拡張機能の有無にかかわらずリストされています)。これを回避する方法はありますか?
解決
私はあなたが設定する必要があると信じています file-patterns
おそらく使用しているスタイル '%p:globbed-files'
.
所属していません StackOverflow