在 zsh 中,我有一个名为的函数g,其行为如下:
- 没有参数,调用
git status - 使用一个或多个参数,将所有给定参数委托给 git - 即调用
git $@
我希望选项卡完成 forg与 for 完全相同git。我可以用 来实现这一点alias g=git,但这不允许我status默认调用(上面的第一点)。
我如何委托完成git?
在 bash 中,我只是complete -F _git g重复使用了 git 的完成功能。使用 zsh,git 的完成看起来要复杂得多,我无法找到类似的解决方案。
我猜zsh中有一些功能可以说“假装我输入了命令[x],你会完成它做什么?”。如果我知道那是什么,那么使用函数委托给它应该很简单。但是我在手册中没有发现这样的功能。