2

foo次のように呼び出すことができるスクリプトがあるとします。

foo git clone http://example.com

またはとして:

foo print 12

compdefここに委任して$argv[0]完了を処理できるようにするにはどうすればよいですか?

4

1 に答える 1

3

関数を呼び出すことで通常の完了システムに再ディスパッチでき_normalますが、最初に状態の一部を変更して、プログラム名とおそらくその引数を無視するようにする必要があります。これの非常に単純なバージョンは、次の方法で実行できます。

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

それよりも複雑にする必要がある場合は (可能性が高い)、、、または_normalの補完など、を呼び出す他のコマンドの補完定義を調べることができます。envsudofakeroot

于 2012-11-25T01:44:35.877 に答える