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