Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设我有一个脚本foo,可以称为:
foo
foo git clone http://example.com
或作为:
foo print 12
等等
我怎样才能让一个compdef委托到$argv[0]这里来让它处理完成?
compdef
$argv[0]
您可以通过调用该函数重新调度到正常的完成系统_normal,但首先您需要修改一些状态,以便它会忽略您的程序名称和可能的参数。一个非常简单的版本可以通过以下方式完成:
_normal
#compdef foo shift words (( CURRENT-- )) _normal
如果您需要变得更复杂(这很可能),您可以查看其他调用 的命令的完成定义_normal,例如env、sudo或的完成fakeroot。
env
sudo
fakeroot