如何在zsh中动态选择完成功能?

时间:2012-11-25 01:21:35

标签: autocomplete zsh zsh-completion

假设我有一个脚本foo,可以称为:

foo git clone http://example.com

或作为:

foo print 12

如何在此处委托compdef代理$argv[0]以允许其处理完成?

1 个答案:

答案 0 :(得分:2)

您可以通过调用_normal函数重新调度到正常完成系统,但首先需要修改某些状态,以便忽略您的程序名称及其参数。一个非常简单的版本可以通过以下方式完成:

#compdef foo
shift words
(( CURRENT-- ))
_normal

如果您需要更复杂(可能),您可以查看调用_normal的其他命令的完成定义,例如env的完成,{ {1}}或sudo

相关问题