【发布时间】:2023-12-10 18:25:01
【问题描述】:
我想调整 zsh 以便我可以完成标签:
myprog <tab>
使用~/somedir 中的所有*.foo 文件,但拥有它以便在不带.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 文件都会列出,有无扩展名)。有没有办法解决这个问题?
【问题讨论】:
标签: string zsh file-extension tab-completion