Shell
zsh 完成:僅完成給定路徑中的文件,而不是目錄
我只需要完成給定路徑中的第一級(深度 1)文件,並忽略目錄。我嘗試指定
-g '*(.)'
,但這似乎沒有效果:#compdef foo local state _arguments -S : \ '-i' \ '-l' \ '-w' \ '1: :->myfiles' case $state in myfiles) _files -W /foo/bar -g '*(.)' ;; esac
它仍然顯示文件和目錄。
我怎樣才能只顯示第一級文件?我對可能在更深層次的目錄中的文件不感興趣。
_arguments -S : \ '-i' \ '-l' \ '-w' \ '1: :{ _wanted all-files expl descriptiongoeshere compadd - /foo/bar/*(^/:t) }'