基于默认参数的函数的自定义zsh完成

blu*_*yed 3 zsh zsh-completion

如何根据现有的完成定义和默认参数设置函数的完成.

一个简化的例子(可以重写为别名):

gpl() {
    git pull origin $@
}
Run Code Online (Sandbox Code Playgroud)

这应该与之后完成相同git pull origin.

blu*_*yed 6

compdef -e 'words[1]=(git pull origin); service=git; (( CURRENT+=2 )); _git' ggl
Run Code Online (Sandbox Code Playgroud)

这种按摩$words,$service以及$CURRENT增值经销商使用的完井系统,然后调用_git完成的功能.

(感谢Mikachu on #zsh).

  • @skarface`CURRENT`是当前正在处理的单词,并且将它增加"2"(因为我们将它们注入:从`ggl`(1个单词)到`git pull origin`(3个单词)). (3认同)