在zsh中使用_替代项完成简单命令

在zsh中使用_替代项完成简单命令,zsh,completion,Zsh,Completion,终于开始切换到zsh(从bash)。。。我正在尝试了解更多关于完成系统的信息,可以使用快速指针。我已经能够为命令参数使用其他补全,但我正在为路径补全而挣扎 我使用一个简单的函数(cdp)跳转到项目目录。我已经建立了一个非常基本的完成脚本,它几乎可以工作。我只是无法得到我所希望的行为 理想情况下,在{tab}中键入cdp将扩展到以中的开头的所有项目,例如: ~/Projects/indigo ~/Projects/instant 相反,我只能获取cdp{tab}来获取~/Projects路径。从

终于开始切换到zsh(从bash)。。。我正在尝试了解更多关于完成系统的信息,可以使用快速指针。我已经能够为命令参数使用其他补全,但我正在为路径补全而挣扎

我使用一个简单的函数(
cdp
)跳转到项目目录。我已经建立了一个非常基本的完成脚本,它几乎可以工作。我只是无法得到我所希望的行为

理想情况下,在{tab}中键入
cdp将扩展到以
中的
开头的所有项目,例如:

~/Projects/indigo ~/Projects/instant
相反,我只能获取
cdp{tab}
来获取
~/Projects
路径。从那里,它将展开第一级目录。一旦项目目录展开,我希望能够运行
cd
的标准完成

这是完成脚本,保存在
\u cdp
中并添加到
fpath

#compdef cdp
basedir=“$HOME/Projects”
#跳转到目录的功能。。。
cdp(){
如果[-z“$1”];则
cd$basedir
其他的
cd“$1”
fi
}
#完成助手。。。
_备选“目录:用户目录:($basedir/*)”
这是很基本的,我只是一直在想下一步该去哪里。任何想法或建议都会很好。谢谢

更新

我发现
cdpath
可以很好地满足我的大部分需求。。。知道如何完成这个简单的功能仍然很有趣,但至少现在我有了一个使用
cdpath
auto\u cd
的有效解决方案