假设我有一个脚本foo
,可以称为:
foo git clone http://example.com
或作为:
foo print 12
等
如何在此处委托compdef
代理$argv[0]
以允许其处理完成?
答案 0 :(得分:2)
您可以通过调用_normal
函数重新调度到正常完成系统,但首先需要修改某些状态,以便忽略您的程序名称及其参数。一个非常简单的版本可以通过以下方式完成:
#compdef foo
shift words
(( CURRENT-- ))
_normal
如果您需要更复杂(可能),您可以查看调用_normal
的其他命令的完成定义,例如env
的完成,{ {1}}或sudo
。