Zsh,带前缀的目录制表符补全

nif*_*fty 10 zsh prefix tab-completion

我有一个目录,我将所有项目都放在其中,假设它~/projects是一个示例。我创建了一个名为的命令s,它接受一个参数,并将我移动到该目录中。例如:s foo将我移至~/projects/foo

我想要的是某种类型的完成命令,它的作用就像cd这样我可以继续点击tab以进一步进入~/projects/...目录。

基本上,cd带有始终存在的前缀。

我在 中研究了 zstyle 完成man zshcompsys,但意识到我对它的了解还不够,无法正确理解它。

Mat*_*ley 13

这是我自己.zshrc的一个例子,我保留为复制/粘贴片段:

# Try using the below template to set up zsh functions that act
# as aliases to cd and allow you to get autocomplete nicely.

project() { cd /path/to/project/$1; }
compctl -W /path/to/project/ -/ project
Run Code Online (Sandbox Code Playgroud)

只需编辑/path/to/project上面两行中的部分,就可以开始了。