我只需要完成给定路径中的第一级(深度 1)文件,并忽略目录。我尝试指定-g '*(.)'
,但这似乎没有效果:
#compdef foo
local state
_arguments -S : \
'-i' \
'-l' \
'-w' \
'1: :->myfiles'
case $state in
myfiles)
_files -W /foo/bar -g '*(.)'
;;
esac
它仍然显示文件和目录。
如何只显示第一级文件?我对该目录中更深层次的文件不感兴趣。
答案1
_arguments -S : \
'-i' \
'-l' \
'-w' \
'1: :{
_wanted all-files expl descriptiongoeshere compadd - /foo/bar/*(^/:t)
}'