GoGPT Best VPN GoSearch

OnWorksファビコン

zshcompsys - クラウドでオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターを介して、OnWorks の無料ホスティング プロバイダーで zshcompsys を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド zshcompsys です。

プログラム:

NAME


zshcompsys - zsh 補完システム

DESCRIPTION


これは、「新しい」補完システムのシェルコードを記述しています。 コンプシス。 それ
で説明されている機能に基づいてシェル関数で記述されています。 zshcompwidとします。

機能はコンテキストに依存し、補完が開始されるポイントに敏感です。 多くの
補完はすでに提供されています。 このため、ユーザーは非常に多くのタスクを実行できます。
以下で説明するシステムの初期化方法以外の詳細を知らなくても
初期化中。

どの補完を実行するかを決定するコンテキストは、
· 引数またはオプションの位置: これらは、コマンド ライン上の位置を記述します。
どの完了が要求されます。 たとえば、`rmdir の最初の引数、単語
完了すると、ディレクトリに名前が付けられます。

· シェルの構文の要素を示す特別なコンテキスト。 たとえば、「単語」
コマンド位置」または「配列添え字」。

後で説明するように、完全なコンテキスト仕様には他の要素が含まれます。

コマンド名とコンテキストに加えて、システムはさらに XNUMX つの概念を採用しています。 スタイル  
タグ. これらは、ユーザーがシステムの動作を構成する方法を提供します。

タグには XNUMX つの役割があります。 それらは、通常、試合の分類システムとして機能します
ユーザーが区別する必要があるオブジェクトのクラスを示します。 たとえば、
の引数を完了する ls ユーザーが試してみたいコマンド ファイル
ディレクトリ、したがって、これらは両方ともタグです。 それらは、
コンテキスト仕様。

スタイルは、出力の書式設定など、補完システムのさまざまな操作を変更しますが、
また、どのような種類のコンプリータが (およびどのような順序で) 使用されるか、またはどのタグが検査されるか。
スタイルは引数を受け入れることができ、 ズスタイル で説明されているコマンド
zshモジュールとします。

要約すると、タグは説明します 補完オブジェクトは、スタイル 彼らはなる
完了しました。 実行のさまざまな時点で、補完システムはどのスタイルをチェックするか
および/またはタグは現在のコンテキストに対して定義され、それを使用してその動作を変更します。
タグやその他の要素がどのように使用されるかを決定するコンテキスト処理の完全な説明
コンテキストはスタイルの動作に影響を与えます。これについては、以下の COMPLETION SYSTEM で説明します。
構成。

完了が要求されると、ディスパッチャー関数が呼び出されます。 の説明を参照してください
_main_complete 以下の制御機能のリストにあります。 このディスパッチャーは、
関数を呼び出して補完を生成する必要があり、それを呼び出します。 結果は渡される
XNUMXつ以上に 完了者、個々の補完戦略を実装する関数:
簡易補完、誤り訂正、誤り訂正補完、メニュー選択、
等々

より一般的には、補完システムに含まれるシェル関数には次の XNUMX つのタイプがあります。
・始めの方`コンプ' は直接呼び出されます。 これらはほんのわずかです。

・始めの方`_' は完了コードによって呼び出されます。 これのシェル機能
補完動作を実装し、キーストロークにバインドされる可能性がある set は、次のとおりです。
「ウィジェット」と呼ばれます。 これらは、新しい補完が必要になるにつれて増殖します。

初期化


システムが完全にインストールされていれば、シェル関数を呼び出すだけで十分です。
コンパイル 初期化ファイルから; 次のセクションを参照してください。 ただし、関数
コンプインストール ユーザーが実行して、補完システムのさまざまな側面を構成できます。

通常、 コンプインストール にコードを挿入します .zshrc、ただし、それが書き込み可能でない場合は
それを別のファイルに保存し、そのファイルの場所を教えてくれます。 それはあなた次第であることに注意してください
行が追加されたことを確認する .zshrc 実際に実行されます。 たとえば、必要な場合があります
ファイル内の前の場所に移動するには .zshrc 通常は早く戻ります。 限り
それらをすべてまとめて(最初と最後のコメント行を含めて)、次のことができます
再実行 コンプインストール これらの行を正しく見つけて変更します。 ただし、
このセクションに手動で追加したコードは、再実行すると失われる可能性があります。
コンプインストール、ただし、コマンド ` を使用している行ズスタイル' は適切に処理する必要があります。

新しいコードは、次にシェルを起動するか実行したときに有効になります .zshrc 手で; そこの
それらをすぐに有効にするオプションもあります。 ただし、 コンプインストール 持っています
定義を削除した場合、変更を確認するにはシェルを再起動する必要があります。

走る コンプインストール に記載されているディレクトリにあることを確認する必要があります。 fpath
これは、zsh が適切に構成されていれば、すでにそうなっているはずです。
起動ファイルは適切なディレクトリを削除しません fpath. それならあるに違いない
オートロード (`オートロード -U コンプインストール' がおすすめ)。 いつでもインストールを中止できます
情報の入力を求められている時間、およびあなたの .zshrc まったく変更されません。
変更は、具体的に要求された最後にのみ行われます
確認。

  of コンパイル
このセクションでは、 コンパイル 現在の完了を初期化する
直接呼び出された場合のセッション。 実行した場合 コンプインストール 自動的に呼び出されます
あなたから .zshrc.

システムを初期化するには、関数 コンパイル に記載されているディレクトリにある必要があります
fpath パラメータであり、自動ロードする必要があります (`オートロード -U コンパイル' が推奨されます)、および
次に、単に `として実行しますコンパイル'。 これにより、いくつかのユーティリティ関数が定義され、すべてが整理されます
必要なシェル関数を自動ロードし、すべてのウィジェットを再定義します。
新しいシステムを使用するために完了を行います。 を使用する場合 メニュー-選択 の一部であるウィジェット
  zsh / complist モジュール、呼び出しの前にそのモジュールがロードされていることを確認する必要があります
〜へ コンパイル そのウィジェットも再定義されるようにします。 補完スタイル (以下を参照) が
デフォルトで展開と補完を実行するように設定されており、TAB キーはにバインドされています
展開または完了, コンパイル に再バインドします 完全な単語; これは、
展開の正しい形。

元の補完コマンドを使用する必要がある場合でも、キーを
` を置くことによる古いウィジェット.' ウィジェット名の前、例えば `.expand-or-complete'.

の実行を高速化するには コンパイル、ダンプされた構成を生成するようにすることができます
今後の呼び出しで読み込まれます。 これはデフォルトですが、次の方法でオフにすることができます
呼び出し コンパイル オプション付き -D. ダンプされたファイルは .zcompdump 同じディレクトリ内
スタートアップファイルとして(つまり $ZDOTDIR or $ HOME); または、明示的なファイル名を
`で与えられるコンパイル -d ダンプファイル'。 の次の呼び出し コンパイル ダンプされたものを読み取ります
完全な初期化を実行する代わりに、ファイル。

補完ファイルの数が変化した場合、 コンパイル これを認識し、新しいものを生成します
ダンプファイル。 ただし、関数の名前または最初の行の引数が
#compdef 関数 (後述) を変更する場合は、次の方法でダンプ ファイルを削除するのが最も簡単です。
そのように手 コンパイル 次回の実行時に再作成されます。 に実行されたチェック
オプションを指定して省略できる新しい関数があるかどうかを確認します -C。 この場合、
ダンプ ファイルは、まだ存在しない場合にのみ作成されます。

ダンプは実際には別の関数によって行われます。 コンプダンプ、ただし、実行するだけで済みます
構成を変更する場合は、これを自分で行います (例: 圧縮定義)そしてダンプしたい
新しい方。 この目的のために、古いダンプ ファイルの名前が記憶されます。

パラメータの場合 _compdir 設定され、 コンパイル 補完先のディレクトリとして使用します
関数を見つけることができます。 これは、それらがまだ関数に含まれていない場合にのみ必要です
検索パス。

セキュリティ上の理由から コンパイル また、補完システムがファイルを使用しないかどうかもチェックします。
root または現在のユーザーが所有するか、world- または
グループ書き込み可能であるか、root または現在のユーザーが所有していないもの。 そのようなファイルまたは
ディレクトリが見つかり、 コンパイル は、補完システムを本当に使用する必要があるかどうかを尋ねます。
これらのテストを回避し、見つかったすべてのファイルを確認せずに使用するには、オプションを使用します。 -u,
そして作る コンパイル すべての安全でないファイルとディレクトリを黙って無視する オプションを使用する -i.
次の場合、このセキュリティ チェックは完全にスキップされます。 -C オプションが与えられます。

関数を実行することで、いつでもセキュリティ チェックを再試行できます。 競争相手。 これは
によって使用されるのと同じ小切手 コンパイル、しかしそれが直接実行されると、 fpath  
それらが永続しないように、関数に対してローカルにします。 チェックするディレクトリは、
引数として渡されます。 何も与えられていない場合、 競争相手 使用されます fpath   _compdir 検索する
補完システム ディレクトリ、欠落しているディレクトリを追加 fpath 必要に応じて。 強制するには
現在名前が付けられている正確なディレクトリのチェック fpath、セット _compdir 空の文字列に
電話する前に 競争相手 or コンパイル.

関数 bashcompinit bash のプログラマブル補完との互換性を提供します
システム。 実行すると、関数が定義されます。 コンプゲン   コンプリート に対応するもの
同じ名前の bash ビルトイン。 その後、補完を使用することが可能になります
bash 用に書かれた仕様と関数。

自動ロード ファイル
補完で使用されるオートロード関数の規則は、それらがで始まることです
下線; すでに述べたように、 fpath/FPATH パラメータにはディレクトリが含まれている必要があります
それらが保存されます。 もしも zsh がシステムに正しくインストールされている場合、 fpath/FPATH
標準機能に必要なディレクトリが自動的に含まれます。

不完全なインストールの場合、 コンパイル で始まる十分な数のファイルが見つかりません
検索パスにアンダースコア (XNUMX 未満) を追加すると、さらに検索しようとします。
ディレクトリにジョブを開始します。 _compdir 検索パスに。 そのディレクトリに次の名前のサブディレクトリがある場合 ベース(Base),
すべてのサブディレクトリがパスに追加されます。 さらに、サブディレクトリの場合 ベース(Base) ています
という名前のサブディレクトリ ペース:, コンパイル サブディレクトリのすべてのサブディレクトリを
パス: これにより、関数をパスと同じ形式にすることができます。 zsh source
配布。

日時 コンパイル が実行されると、経由でアクセス可能なすべてのファイルを検索します fpath/FPATH そしてそれを読みます
それぞれの最初の行。 この行には、以下で説明するタグのいずれかが含まれている必要があります。
最初の行がこれらのタグのいずれかで始まらないファイルは、一部とは見なされません
完工制度の対象となり、特別扱いはいたしません。

タグは次のとおりです。

#compdef ...[ -{p|P} パターン ...[ -N ...]]]
ファイルは自動読み込み可能になり、その中で定義された関数が呼び出されます
完了するとき s、それぞれがコマンドの名前であり、
引数が完了するか、フォーム内のいくつかの特別なコンテキストの XNUMX つになります。
-コンテキスト- 以下で説明します。

` の形式の場合もありますCMD=サービス'。 コマンドを完了すると CMD,
関数は通常、コマンド (または特別なコンテキスト) のように動作します。 サービス ました
代わりに完成しています。 これにより、の動作を変更する方法が提供されます。
多くの異なる補完を実行できる関数。 それはによって実装されています
パラメータを設定する $サービス 関数を呼び出すとき。 関数は選択することができます
これを希望どおりに解釈するために、より単純な関数はおそらくそれを無視します。

Status #compdef 行にはオプションの XNUMX つが含まれています -p or -P、次の単語は
パターンであると見なされます。 関数は、補完が試行されたときに呼び出されます
パターンの XNUMX つに一致するコマンドまたはコンテキスト。 オプション -p   -P  
他の補完の前または後に試行されるパターンを指定するために使用されます
それぞれ。 したがって -P デフォルトのアクションを指定するために使用できます。

オプション -N 次のリストの後に使用されます -p or -P; 残りの
言葉はもはやパターンを定義しません。 XNUMXつの切り替えが可能
必要に応じて何度でもオプションを選択してください。

#compdef -k キーシーケンス ...
このオプションは、組み込みウィジェットのように動作するウィジェットを作成します そしてそれをバインドします
与えられた キーシーケンスs、もしあれば。 の 組み込みウィジェットの XNUMX つである必要があります。
補完を実行する、つまり 完全な単語, 削除文字またはリスト, 展開または完了,
エキスパンドまたはコンプリートプレフィックス, リスト-選択肢, メニュー-完了, メニューの展開または完了または
リバースメニュー-完了。 もし zsh / complist モジュールがロードされます (参照 zshモジュール(1))
ウィジェット メニュー-選択 もご利用いただけます。

のいずれかが キーシーケンスs が入力されると、ファイル内の関数が呼び出されます
一致を生成します。 キーがすでにバインドされている場合、キーは再バインドされないことに注意してください (
は、何か他のものにバインドされていました 未定義のキー)。 作成されたウィジェットには、
ファイルと同じ名前で、を使用して他のキーにバインドできます バインドキー いつものように。

#compdef -K ウィジェット名 キーシーケンス [ seq ...]
これは -k XNUMXつだけを除いて キーシーケンス 引数を与えることができます
ウィジェット名 ペア。 ただし、XNUMX つの引数のセット全体が
異なる引数のセットで繰り返されます。 特に、
ウィジェット名 セットごとに異なる必要があります。 `で始まらない場合_' この意志
追加されます。 の ウィジェット名 既存のウィジェットの名前と衝突してはいけません:
関数の名前に基づく名前が最も便利です。 例えば、

#compdef -K _foo_complete 完全な単語 "^X^C" \
_foo_list リスト-選択肢 "^X^D"

(すべて XNUMX 行で) ウィジェットを定義します _foo_complete 補完のために ` にバインド^ X ^ C',
そしてウィジェット _foo_list リストの場合、` にバインド^X^D'.

#オートロード [ オプション ]
機能 #オートロード タグは自動読み込み用にマークされていますが、それ以外の場合はそうではありません
特別扱い。 通常、それらは次のいずれかから呼び出されます。
完了関数。 どれでも オプション に渡されます。 オートロード 組み込み;
典型的な用途は +X 関数がすぐにロードされるように強制します。 注意してください
-U   -z フラグは常に暗黙的に追加されます。

当学校区の # はタグ名の一部であり、その後に空白を入れることはできません。 の #compdef タグ
使用 圧縮定義 以下に説明する機能。 主な違いは、
関数は暗黙的に提供されます。

補完関数を定義できる特別なコンテキストは次のとおりです。

-配列値-
配列代入の右辺 (`=(...)')

-ブレースパラメータ-
中括弧内のパラメーター展開の名前 (`${...}')

-代入パラメータ-
代入内のパラメータの名前、つまり ` の左側='

-指図-
コマンド位置の単語

-調子-
条件内の単語 (`[[...]]')

デフォルト-
他の補完が定義されていない任意の単語

-同等-
等号で始まる単語

-最初-
これは、他の完了関数の前に試行されます。 呼び出された関数は設定できます
  _compskip パラメータをさまざまな値の XNUMX つに設定します。 :これ以上の完成はありません
試みた; 部分文字列を含む文字列 パターン: パターン補完なし
関数が呼び出されます。 を含む文字列 デフォルト: の関数
`デフォルト-' context は呼び出されませんが、コマンド用に定義された関数は呼び出されます。

-算数- ` などの数学的コンテキスト内((...))'

-パラメータ-
パラメータ展開の名前 (`$...')

-リダイレクト-
リダイレクト演算子の後の単語。

-添字-
パラメータ添え字の内容。

-チルダ-
最初のチルダの後 (`~')、ただし単語の最初のスラッシュの前。

-価値-
割り当ての右側。

これらのコンテキストごとにデフォルトの実装が提供されます。 ほとんどの場合、
コンテキスト -コンテキスト- 対応する関数によって実装されます _コンテキスト、例えば
コンテキスト `-チルダ-' と関数 `_チルダ')。

コンテキスト -リダイレクト-   -価値- 追加のコンテキスト固有の情報を許可します。
(内部的には、これは関数を呼び出す各コンテキストの関数によって処理されます。
_急送.) コンマで区切られた追加情報が追加されます。

  -リダイレクト- コンテキスト、追加情報は ` の形式です-リダイレクト-、op, command',
コラボレー op はリダイレクト演算子であり、 command 行上のコマンドの名前です。
ライン上にまだコマンドがない場合、 command フィールドは空になります。

  -価値- コンテキスト、フォームは `-価値-、, command'、 どこ の名前です
割り当ての左側のパラメーター。 の要素の場合、
連想配列、たとえば `assoc=(キー ', `に展開されます-キー'。 の
` の後に完了するなど、特定の特別なコンテキストmake CFLAGS='、 command 一部が与える
ここにコマンドの名前 make; それ以外の場合は空です。

提供されている関数は完全に特定の補完を定義する必要はありません。
要素を徐々に ` に置き換えて補完を生成してみてくださいデフォルト-'。 為に
例、` の後に完了する場合フー=', _価値 名前を試します `-値-,foo,' (ノート
空の command 一部)、`-値-、foo、-デフォルト-' と `-値-、-デフォルト-、-デフォルト-'、 その中で
コンテキストを処理する関数が見つかるまで。

例として:

圧縮定義 '_ファイル -g "*。ログ"' 「-リダイレクト-,2>,-デフォルト-」

` に一致するファイルを完成させます*。ログ' の後2> ' より具体的なものを持たない任意のコマンド
ハンドラが定義されています。

また:
圧縮定義 _foo -値-、-デフォルト-、-デフォルト-
を指定します _foo 特別なものがないパラメータの値の補完を提供します
関数が定義されています。 これは通常、関数によって処理されます。 _価値 そのもの。

スタイルを検索するときも同じ検索規則が使用されます (後述)。 例えば

ズスタイル ':completion:*:*:-redirect-,2>,*:*' ファイルパターン '*。ログ'

` の後に補完を行う別の方法です2> ' 一致する完全なファイル `*。ログ'.

機能
次の関数は、 コンパイル 直接呼び出すこともできます。

圧縮定義 [ - はね ] function ...[ -{p|P} パターン ...[ -N ...]]
圧縮定義 -d ...
圧縮定義 -k [ -an ] function キーシーケンス [ キーシーケンス ...]
圧縮定義 -K [ -an ] function キーシーケンス [ seq ...]
最初の形式は、 function 指定されたコンテキストでの完了を呼び出す
について説明されています #compdef 上のタグ。

あるいは、すべての引数が ` の形式をとることもできますCMD=サービス'。 ここに サービス
`によってすでに定義されているはずですcmd1=サービス' 行 #compdef ファイルなど
上で説明した。 の引数 CMD と同じ方法で完成します。
サービス.

当学校区の function 引数は、ほとんどすべてのシェルを含む文字列にすることもできます
コード。 文字列に等号が含まれている場合は、上記が優先されます。 の
オプション -e 最初の引数がシェルとして評価されるように指定するために使用できます
コードに等号が含まれていても。 文字列は、 評価する
補完を生成する組み込みコマンド。 これにより、
新しい補完関数を定義します。 たとえば、` で終わるファイルを完成させるには.h' なので
コマンドへの引数 foo:

圧縮定義 '_ファイル -g "*.h"' foo

オプション -n コマンドまたはコンテキストに対してすでに定義されている補完を防ぎます
上書きされないようにします。

オプション -d リストされたコマンドまたはコンテキストに対して定義された補完を削除します。

当学校区の s には以下が含まれる場合もあります -p, -P   -N で説明されているオプション #compdef タグ。
引数リストへの影響は同じで、次の定義を切り替えます。
最初に試行されたパターン、最後に試行されたパターン、および通常のコマンドとコンテキスト。

パラメータ $_compskip パターンコンテキスト用に定義された任意の関数によって設定できます。
部分文字列 ` を含む値に設定されている場合パターン' のどれも
パターン関数が呼び出されます。 部分文字列を含む値に設定されている場合
`'、他の関数は呼び出されません。

との形 -k と同じ名前のウィジェットを定義します。 function それは
それぞれに呼ばれた キーシーケンスs; これは #compdef -k タグ。 ザ·
関数は必要な補完を生成する必要があり、それ以外の場合は次のように動作します
名前が 口論。 使えるウィジェット
これは: 完全な単語, 削除文字またはリスト, 展開または完了,
エキスパンドまたはコンプリートプレフィックス, リスト-選択肢, メニュー-完了, メニューの展開または完了,
  リバースメニュー-完了、 と同様 メニュー-選択 もし zsh / complist モジュールは
読み込まれました。 オプション -n キーがすでにバインドされている場合、キーがバインドされるのを防ぎます
それ以外の何か 未定義のキー.

との形 -K 類似しており、同じに基づいて複数のウィジェットを定義します
function、それぞれに XNUMX つの引数のセットが必要です ,  
キーシーケンスuence、後者の XNUMX つは -k 最初は一意でなければなりません
アンダースコアで始まるウィジェット名。

該当する場合は常に、 -a オプションは function オートロード可能、同等
オートロード -U function.

関数 圧縮定義 既存の補完関数を新しいものに関連付けるために使用できます
コマンド。 例えば、

圧縮定義 _pids foo

関数を使用します _pids コマンドのプロセス ID を完成させる foo.

も注意してください _gnu_generic オプションを完了するために使用できる以下の機能
` を理解するコマンドの場合 - 助けて'オプション。

完了 SYSTEM CONFIGURATION


このセクションでは、補完システムがどのように機能するかについて簡単に説明します。
一致を生成する方法とタイミングをユーザーが構成する方法の詳細。

概要
コマンドラインのどこかで補完が試みられると、補完システムが開始されます
コンテキストを構築します。 コンテキストは、シェルがコンテキストについて知っているすべてを表します。
コマンドラインの意味とカーソル位置の意味。 これには
コマンドワード(`など)を含む多くのことの説明grep'または `zsh') と
現在の単語が引数になるオプション (`-o' オプション zsh which
引数としてシェルオプションを取ります)。

コンテキストは非常に一般的なもの (「完了を開始しています」) から始まり、より多くなります。
学習が進むにつれて具体的な (「現在の単語は、通常はコマンドである位置にあります。
name」または「現在の単語は変数名である可能性があります」など)。したがって、コンテキスト
完了システムへの同じ呼び出し中に変化します。

このコンテキスト情報は、複数のフィールドで構成される文字列に凝縮されます
コロンで区切られ、残りの部分では単に「コンテキスト」と呼ばれます。
ドキュメンテーション。 補完システムのユーザーはめったに作成する必要がないことに注意してください
コンテキスト文字列。たとえば、補完を実行する新しい関数が作成されている場合を除きます。
新しいコマンド用。 ユーザーが行う必要があるのは、 パターン、つまり
構成する状況依存オプションを検索する必要がある場合に、コンテキストと照合します。
完成系。

次のいくつかの段落では、補完関数内でコンテキストがどのように構成されるかを説明します
スイート。 それに続いて、方法の議論です スタイル が定義されています。 スタイルはそのようなものを決定します
シェルオプションに似ていますが、はるかに多くの一致が生成される方法など
コントロール。 それらはで定義されます ズスタイル 組み込みコマンド(を参照) zshモジュール(1))。

コンテキスト文字列は常に、コロンで区切られたフィールドの固定セットで構成され、
最初のコロンの前に先頭のコロン。 まだ知られていないフィールドは空のままですが、
とにかく周囲のコロンが表示されます。 フィールドは常に順番どおりです
:完了:function:完了: command:引数:タグ. これらには次の意味があります。

· リテラル文字列 完成完成までにこのスタイルが使われていると言う
システム。 これにより、コンテキストが zle などで使用されるコンテキストと区別されます。
ウィジェットと ZFTP 関数。

functionを介してではなく名前付きウィジェットから補完が呼び出された場合
正常終了システム。 通常は空白ですが、特別に設定されています
などのウィジェット 予測オン とのさまざまな機能 ウィジェット のディレクトリ
多くの場合、省略形で、その関数の名前に配布されます。

完了 現在アクティブな、先頭のない関数の名前
アンダースコアとハイフンに変換された他のアンダースコア。 「コンプリータ」が入っています
完了方法の全体的な制御。 `コンプリート' が最も単純で、
ただし、修正などの関連タスクを実行したり、
後のコンプリータの動作を変更します。 「制御機能」のセクションを参照してください。
詳細については、以下をご覧ください。

command または特別な -コンテキスト-、ちょうど次のように表示されます #compdef タグ
または 圧縮定義 関数。 サブコマンドを持つコマンドの補完関数
通常、このフィールドを変更して、コマンドの名前とそれに続くマイナス記号を含めます。
サインとサブコマンド。 たとえば、 CVS command
このフィールドを cvs-add への引数を完了するとき 加えます サブコマンド。

引数; これは、どのコマンド ラインまたはオプション引数であるかを示します。
完了する。 コマンド引数の場合、これは一般に次の形式を取ります 口論-nここで、
n は引数の数であり、オプションへの引数の場合は次の形式です オプション-オプト-n
コラボレー n オプションへの引数の数 オプト. ただし、これはあくまでも
コマンド ラインが標準の UNIX スタイルのオプションと引数で解析される場合、
非常に多くの補完がこれを設定していません。

タグ. 前述のように、タグはタイプを区別するために使用されます
補完関数が特定のコンテキストで生成できる一致の数。 任意の完了
関数は任意のタグ名を使用できますが、より一般的なタグ名のリストが提供されます
を参照してください。

関数が実行されるにつれて、コンテキストは徐々にまとめられます。
追加するメイン エントリ ポイント :完了:function 必要に応じて要素。 の
次に、コンプリータが追加します 完了 エレメント。 コンテキスト補完は、 command  
引数 オプション。 最後に、 タグ 補完の種類がわかっている場合に追加されます。 にとって
たとえば、コンテキスト名

:completion::complete:dvips:option-o-1:ファイル

オプションの最初の引数として通常の完了が試行されたことを示します -o
command dvips:

dvips -o ...

補完機能はファイル名を生成します。

通常、補完によって指定された順序で、可能なすべてのタグに対して補完が試行されます。
関数。 ただし、これは、 タグ順 スタイル。 完成はそれから
指定された順序で指定されたタグのリストに制限されます。

当学校区の _complete_help bindable コマンドは、利用可能なすべてのコンテキストとタグを表示します
特定の時点での完了。 これにより、次の情報を簡単に見つけることができます。
タグ順 と他のスタイル。 これについては、以下のセクション「バインド可能なコマンド」で説明しています。

スタイルを検索するとき、補完システムはタグを含む完全なコンテキスト名を使用します。
したがって、スタイルの値を調べることは、次の XNUMX つの要素で構成されます。
最も具体的な (最適な) スタイル パターンとスタイルの名前に一致する
正確に一致する必要があります。 次の例は、そのスタイルを示しています
パターンは、広く適用されるスタイルに対して大まかに定義することも、次のように厳密に定義することもできます。
より狭い状況で適用されるスタイルに適しています。

たとえば、多くの補完関数は、単純な形式と詳細な形式で一致を生成できます。
そして使用する 詳細 スタイルを使用して、どのフォームを使用するかを決定します。 そのようなすべての機能を作るために
詳細な形式を使用して、置く

ズスタイル ':完了:*' 詳細 はい

起動ファイル (おそらく .zshrc)。 これにより、 詳細 値のスタイル はい 毎回
そのコンテキストがより具体的な定義を持っていない限り、補完システム内のコンテキスト。
コンテキストを ` として指定することは避けるのが最善です*' スタイルが外部で何らかの意味を持つ場合
完成系。

このような汎用スタイルの多くは、 コンプインストール
機能。

の使用のより具体的な例 詳細 スタイルは完成までに kill
組み込み。 スタイルが設定されている場合、ビルトインは完全なジョブ テキストとプロセス コマンド ラインを一覧表示します。
それ以外の場合は、裸のジョブ番号と PID が表示されます。 この使用のためにスタイルをオフにするには
のみ:

ズスタイル ':completion:*:*:kill:*:*' 詳細 いいえ

さらに細かく制御するために、スタイルはタグの XNUMX つを使用できます `jobs'または `ラボレーション'。 回す
ジョブの冗長表示のみ:

ズスタイル ':completion:*:*:kill:*:ジョブ' 詳細 いいえ

当学校区の -e オプション ズスタイル 補完関数コードを引数として表示することもできます
スタイル; これには、補完関数の内部をある程度理解する必要があります ( を参照してください)。
zshcompwid(1))))。 例えば、

ズスタイル -e ':完了:*' ホスト 「返信=($myhosts)」

これにより、 ホスト 変数から読み取るスタイル マイホスト 毎回
ホスト名が必要です。 これは、次の値の場合に役立ちます。 マイホスト 動的に変更できます。 にとって
別の便利な例については、の説明の例を参照してください。 ファイルリスト 以下のスタイル。
このフォームは遅くなる可能性があるため、次のような一般的に調査されるスタイルでは避ける必要があります。 メニュー  
リスト行が最初.

スタイルの順序に注意してください 定義済みの 重要ではない; スタイルメカニズムは使用します
値のセットを決定するための特定のスタイルの最も具体的な可能な一致。
より正確には、文字列はパターンよりも優先されます (たとえば、
`:完了::完了:::foo' は ` よりも具体的です:完了::完了:::*')、及び
長いパターンは短いパターンよりも優先されます。

経験則として、補完スタイルのパターンには、以上のものを含める必要があります。
XNUMX つのワイルドカード (*) であり、タグ名で終わらない場合は、XNUMX つのコロン (:),
追加のワイルドカードを囲む可能性があります。

タグのようなスタイル名は任意であり、補完関数に依存します。
ただし、次の XNUMX つのセクションでは、最も一般的なタグとスタイルの一部を示します。

スタンダード タグ
次のいくつかは、特定のスタイルを検索する場合にのみ使用され、参照していません。
マッチの一種。

アカウントの視聴者データを取得する
を調べていた ユーザーホスト

全展開
によって使用される _拡大する 可能なすべてを含む単一の文字列を追加するときの完了者
拡張

すべてのファイル
すべてのファイルの名前については (特定のサブセットとは異なり、
グロブファイル 鬼ごっこ)。

引数
コマンドの引数用

アレイ 配列パラメータの名前

関連キー
連想配列のキー用。 への添字内で補完するときに使用されます
このタイプのパラメーター

ブックマーク
ブックマークを完了するとき (たとえば、URL や zftp 関数スイート)

ビルトイン
組み込みコマンドの名前について

文字
次のようなコマンドの引数の単一文字 スティ. こんな時にも使われる
左括弧の後に文字クラスを完成させる

カラーマップ
X カラーマップ ID の場合

色名について

コマンド
外部コマンドの名前。 次のような複雑なコマンドでも使用されます。 CVS を特定いたします。
名前のサブコマンドを完成させます。

文脈
への引数のコンテキスト用 ズスタイル 組み込みコマンド

訂正
によって使用される _近似   _正しい 可能な修正のためのコンプリータ

カーソル
X プログラムで使用されるカーソル名

デフォルト
より具体的な場合にデフォルトを提供する方法を提供するために、一部のコンテキストで使用されます
タグも有効です。 このタグは、 function の分野
コンテキスト名が設定されています

説明
の値を検索するときに使用されます。 形式でアーカイブしたプロジェクトを保存します. 説明を生成するスタイル
試合の種類

デバイス
デバイス特殊ファイル名用

ディレクトリ
ディレクトリの名前について -- ローカルディレクトリ 完了するときに代わりに使用されます
の引数 cd および関連する組み込みコマンド CDパス 配列が設定されています

ディレクトリスタック
ディレクトリスタックのエントリ

ディスプレイ
X 表示名の場合

ドメイン
ネットワークドメイン用

拡張
によって使用される _拡大する 個々の単語のコンプリータ (完全なセットとは対照的に)
コマンドラインでの単語の展開の結果として生じる)

エクステンション
X サーバー拡張用

ファイル記述子
開いているファイル記述子の数

ファイル ファイル名を補完する関数によって使用される一般的なファイル マッチング タグ

フォント X フォント名の場合

fstypes
ファイルシステムの種類 (例: mount コマンド)

機能
関数の名前 -- 通常はシェル関数ですが、コマンドによっては
他の種類の機能を理解する

グロブファイル
名前がパターン マッチングによって生成された場合のファイル名

グループヘッド ユーザーグループ名用

歴史の言葉
歴史からの言葉のために

ホスト ホスト名用

インデックス
配列インデックス用

jobs ジョブ用 (`jobs' 組み込み)

インターフェース
ネットワーク インターフェイス用

キーマップ
zsh キーマップの名前について

キーシム
X キーシムの名前

ライブラリ
システム ライブラリの名前について

制限 システム制限用

ローカルディレクトリ
現在の作業ディレクトリのサブディレクトリであるディレクトリの名前
の引数を完了するとき cd および関連する組み込みコマンド (比較
パスディレクトリ) -- とき CDパス 配列が設定されていない、 ディレクトリ 代わりに使用されます

マニュアル
マニュアルページの名前

メールボックス
電子メール フォルダ用

マップ マップ名 (NIS マップなど)

メッセージ
を調べていた 形式でアーカイブしたプロジェクトを保存します. メッセージのスタイル

修飾子
X修飾子の名前について

モジュール
モジュール用 (例: zsh モジュール)

マイアカウント
を調べていた ユーザーホスト

名前付きディレクトリ
名前付きディレクトリの場合 (あなたはそれを推測しなかったでしょう?)

あらゆる種類の名前に

ニュースグループ
USENET グループ用

ニックネーム
NIS マップのニックネーム用

オプション
コマンドオプション用

オリジナル
によって使用される _近似, _正しい   _拡大する を提供するときの完成者
一致する元の文字列

他のアカウント
を調べていた ユーザーホスト

その他のファイル
ディレクトリ以外のファイルの名前。 これは代わりに使用されます すべてのファイル を特定いたします。
  リストディレクトリの先頭 スタイルが有効です。

パッケージ
パッケージ用 (例: rpm またはインストール済み Debianの パッケージ)

パラメータ
パラメータの名前について

パスディレクトリ
を検索して見つかったディレクトリの名前 CDパス 完了時の配列
の引数 cd および関連する組み込みコマンド (比較 ローカルディレクトリ)

パス の値を検索するために使用されます 拡張, あいまいな   特別ディレクトリ スタイル

ポッド perl ポッド用 (ドキュメント ファイル)

ポート 通信ポート用

プレフィックス
プレフィックス用 (URL のプレフィックスなど)

プリンター
印刷待ち行列名

ラボレーション
プロセス識別子用

プロセス名
を調べていた command プロセスの名前を生成するときのスタイル
killall

シーケンス
シーケンス用 (例: mh シーケンス)

セッション
でのセッションの場合 zftp 機能スイート

信号
信号名用

ストリング
文字列の場合 (たとえば、 cd 組み込みコマンド)

スタイル zstyle 組み込みコマンドで使用されるスタイル用

接尾辞
ファイル名拡張子用

タグ タグ用(例 rpm タグ)

ターゲット
メイクファイル ターゲット用

時間帯
タイムゾーンの場合 (例: TZ パラメータ)

あらゆるタイプの場合 (たとえば、 xhost コマンド)

URLは を調べていた URLは   ローカル URL を完成させるときのスタイル

users ユーザー名用

特定のリストの一連の値の XNUMX つ

異形
によって使用される _pick_variant プログラムを決定するときに実行するコマンドを検索する
特定のコマンド名に対してインストールされます。

ビジュアル
Xビジュアル用

警告
を調べていた 形式でアーカイブしたプロジェクトを保存します. 警告のスタイル

ウィジェット
zsh ウィジェット名の場合

ウィンドウズ
X ウィンドウの ID 用

zsh オプション
シェルオプション用

スタンダード スタイル
これらのスタイルのいくつかの値は、ブール値を表すことに注意してください。 のいずれか
文字列 `true'、 `on'、 `はい'、および `1' 値 `true' および
文字列 `false'、 `OFF'、 `いいえ'、および `0' 値が「false」の場合。 その他の動作
明示的に言及されている場合を除き、値は定義されていません。 デフォルト値は次のいずれかです。
スタイルが設定されていない場合は「true」または「false」。

これらのスタイルのいくつかは、タイプに対応するすべての可能なタグについて最初にテストされます
スタイルが見つからない場合は、 デフォルト 鬼ごっこ。 これの最も注目すべきスタイル
タイプは メニュー, リストの色 などの補完リストを制御するスタイル リストパック
  ラストプロンプト. をテストすると、 デフォルト タグのみ function コンテキストのフィールド
default タグを使用するスタイルが通常は線に沿って定義されるように設定されます
の:

ズスタイル ':完了:*:デフォルト' メニュー ...

正確に受け入れる
これは、現在の有効なタグに加えて、デフォルトのタグに対してテストされます。
環境。 「true」に設定されていて、試行一致のいずれかが
コマンド ラインで文字列を指定すると、この一致はすぐに受け入れられます (
それ以外の場合はあいまいと見なされます)。

パス名を補完するとき (使用されるタグは `パス') このスタイルは、
ブール値に加えて、値としてパターンの数。 パス名
これらのパターンのいずれかに一致すると、コマンドが
行には、部分的に入力されたパス名コンポーネントがいくつか含まれており、これらはファイルに一致しません
受け入れられたディレクトリの下。

このスタイルは、 _拡大する で始まる単語かどうかを決定する補完
チルダまたはパラメータ展開は展開する必要があります。 たとえば、
パラメータ foo   foob​​ar、文字列 `$ foo' の場合にのみ展開されます 正確に受け入れる
「真」に設定されています。 それ以外の場合、完了システムは完了できます $ foo
〜へ $foobar. スタイルが ` に設定されている場合続ける', _拡大する として拡張を追加します
試合終了システムも継続させていただきます。

受け入れる正確なディレクトリ
これは、ファイル名補完で使用されます。 ようではない 正確に受け入れる それはブール値です。 に
デフォルトでは、ファイル名補完は、パスのすべてのコンポーネントを調べて、存在するかどうかを確認します。
コンポーネントが既存のディレクトリと一致する場合でも、そのコンポーネントの完了。
例えば、終了後 / usr / bin /、関数は可能性を調べます
への補完 / usr.

このスタイルが「true」の場合、既存のディレクトリに一致するパスのプレフィックス
それ以上完了する試みなしに受け入れられます。 したがって、与えられた
たとえば、パス / usr / bin / すぐに受け入れられ、その中で完了が試行されます
ディレクトリにあります。

この動作を完全に禁止したい場合は、 パス補完 スタイル(を参照)
以下) を「false」に変更します。

スペースを追加
このスタイルは、 _拡大する コンプリート。 それが「真」(デフォルト) の場合、
展開されたすべての単語の後にスペースが挿入されるか、スラッシュが挿入されます
ディレクトリ名の場合。 値が ` の場合file'、コンプリータは
既存のファイルの名前にスペース。 ブール値 `true' または値 `file' 五月
`と組み合わせるSUBST'、この場合、コンプリータは単語にスペースを追加しません
` の形式の置換の展開から生成された$(...)'または `${...}'.

当学校区の _prefix コンプリータは、このスタイルを単純なブール値として使用して、
サフィックスの前にスペースを挿入する必要があります。

あいまいな
これは、ファイル名パスの非最終コンポーネントを完了するときに適用されます。つまり、
末尾にスラッシュがあるもの。 設定されている場合、カーソルは最初の
メニュー補完が使用されている場合でも、あいまいなコンポーネント。 スタイルは常にテストされています
パス タグ。

割り当てリスト
代入として扱われている等号の後に完了すると、
補完システムは通常、XNUMX つのファイル名だけを補完します。 場合によっては値
次のように、コロンで区切られたファイル名のリストである場合があります。 パス と同様
パラメーター。 このスタイルは、そのような名前に一致するパターンのリストに設定できます
パラメーター。

デフォルトでは、行の単語にすでに
結腸。

自動説明
設定されている場合、このスタイルの値は、指定されていないオプションの説明として使用されます。
補完関数によって記述されますが、引数は XNUMX つだけです。 の
シーケンス`%d値の ' は、この引数の説明に置き換えられます。
個人の好みによっては、このスタイルを何かに設定すると便利な場合があります
`のように特定: %d'。 これは、一部のコマンドでは機能しない場合があることに注意してください。

回避完了者
これはによって使用されます _all_matches で構成される文字列かどうかを決定するコンプリータ
すべての一致は、現在生成されているリストに追加する必要があります。 その値は
コンプリート者の名前のリスト。 これらのいずれかがそのコンプリータの名前である場合
この補完で一致を生成した場合、文字列は追加されません。

このスタイルのデフォルト値は `_拡大する _old_list _正しい _近似'、つまり
すべての一致を含む文字列がほとんど一致しないコンプリータが含まれています
欲しかった。

キャッシュパス
このスタイルは、ダンプされた完了データを含むキャッシュ ファイルのパスを定義します。
保存された。 デフォルトは `$ZDOTDIR/.zcompcache'、または `$HOME/.zcompcache' もしも
$ZDOTDIR 定義されていません。 次の場合を除き、完了キャッシュは使用されません。
使用キャッシュ スタイルが設定されます。

キャッシュポリシー
このスタイルは、キャッシュかどうかを判断するために使用される関数を定義します。
再構築が必要です。 のセクションを参照してください。 _キャッシュ_無効 以下の機能。

呼び出しコマンド
このスタイルは、次のようなコマンドの関数で使用されます。 make   アリ どこに電話するか
マッチを直接生成するコマンドは、遅い、または
の場合 make メイクファイル内のアクションが実行される可能性があります。
「true」に設定されている場合、一致を生成するためにコマンドが呼び出されます。 デフォルト値
このスタイルは「false」です。

command
多くの場所で、補完関数は外部コマンドを呼び出して生成する必要があります
完成品リスト。 このスタイルは、呼び出されたコマンドをオーバーライドするために使用できます
場合によっては。 値の要素はスペースで結合され、
実行するコマンドライン。 値はハイフンで始めることもできます。
通常のコマンドが最後に追加されます。 これは ` を置くのに最も便利ですビルトイン'
または ` command' コマンドの適切なバージョンが呼び出されることを確認するために前に、
たとえば、外部関数と同じ名前のシェル関数を呼び出さないようにするため


例として、プロセス ID の補完関数は、このスタイルを
ラボレーション 完了する ID と表示するプロセスのリストを生成するタグ
(もし 詳細 スタイルは「真」です)。 コマンドによって生成されたリストは次のようになります
の出力のように ps 指図。 最初の行は表示されませんが、
文字列 ` を検索しましたPID' (または 'ピッド') 内のプロセス ID の位置を見つける
次の行。 行に ` が含まれていない場合PID'、それぞれの最初の数字
の他の行は、完了するプロセス ID として取得されます。

完了関数は通常、指定されたコマンドを呼び出さなければならないことに注意してください。
完了リストを生成するたびに。 したがって、注意が必要です
実行に短時間しかかからないコマンドのみを指定してください。
それは決して終わらないかもしれません。

コマンドパス
これは、完了するコマンドを検索するディレクトリのリストです。 のデフォルト
このスタイルは特別なパラメータの値です path.

コマンド
これは、システム初期化のサブコマンドを完了する関数によって使用されます
スクリプト ( の/ etc / init.dディレクトリ またはそこからそれほど遠くない場所)。 これは
値は、それらのコマンドに対して完了するデフォルトのコマンドを示します。
補完機能はそれらを自動的に見つけることができません。 のデフォルト
このスタイルは XNUMX つの文字列 `start'と `stop'.

コンプリート
これはによって使用されます _expand_alias バインド可能なコマンドとして呼び出されたときに機能します。 もしも
`true' に設定され、コマンド ラインの単語がエイリアスの名前ではない場合、
エイリアス名の一致が完了します。

完全なオプション
これは、コンプリータによって使用されます cd, Chdir   pushdは. これらのコマンドについては、 - is
ディレクトリスタックエントリを導入するために使用され、これらの完了ははるかに多くの
オプションを完了するよりも一般的です。 したがって、このスタイルの値が「true」でない限り
オプションは、イニシャル後も完了しません。 -. 「true」の場合、オプション
イニシャルの後に完了します - 前置きがない限り -- コマンドで
ライン。

完了
このスタイルの値として指定された文字列は、コンプリータの名前を提供します
使用する機能。 利用可能なコンプリータ関数は、セクションで説明されています
以下の「制御機能」。

各文字列は、補完関数の名前または形式の文字列のいずれかです。
`function:'。 最初のケースでは、 完了 コンテキストのフィールドが含まれます
先頭のアンダースコアがなく、その他すべてのコンプリータの名前
アンダースコアはハイフンに置き換えられます。 XNUMX 番目のケースでは、 function の名前です
呼び出すコンプリータですが、コンテキストにはユーザー定義の 会場は
完了 コンテキストのフィールド。 もし ハイフンで始まる、の文字列
コンテキストは、最初のようにコンプリータ関数の名前から構築されます
ケース付き それに追加されます。 例えば:

ズスタイル ':完了:*' 完了 _完了 _complete:-foo

ここで、完了は _完了 `を使用してXNUMX回、XNUMX回補完コンプリート'と
一度 ` を使用して完全な foo' の中に 完了 コンテキストのフィールド。 通常、
同じコンプリートを複数回使用する場合にのみ意味があります
`機能:' フォーム、それ以外の場合、コンテキスト名はすべてで同じになるため
コンプリータへの呼び出し。 この規則の例外として考えられるのは、 _無視  
_prefix 完了者。

このスタイルのデフォルト値は `_完了 _無視': 補完のみとなります
最初に 無視されたパターン スタイルと $無視 配列、そして
一致を無視することなく。

条件
このスタイルは、 _リスト 挿入するかどうかを決定する完了関数
試合は無条件に延期されるべきです。 デフォルトは「真」です。

区切り文字
このスタイルは、履歴修飾子またはグロブで使用する区切り文字を追加するときに使用されます
区切り引数を持つ修飾子。 優先区切り文字の配列です
たす。 補完システムでは、非特殊文字が優先されます。
そうしないと混乱します。 デフォルトのリストは :, +, /, -, %. リストは
区切り文字を強制的に入力するには空にします。

無効
これが「true」に設定されている場合、 _expand_alias 完全でバインド可能なコマンドが試行します
無効なエイリアスも展開します。 デフォルトは「false」です。

ドメイン
補完するネットワーク ドメインの名前のリスト。 これが設定されていない場合、ドメイン
名前はファイルから取得されます /etc/resolv.conf.

環境
` を補完するときは、環境スタイルが使用されますsudo'。 の配列に設定されます
`VAR=' 割り当ての前にローカル環境にエクスポートする
ターゲット コマンドの完了が呼び出されます。
ズスタイル ':完了:*:sudo::' 環境 \
パス=/ sbin:/ usr / sbin:$ PATH " ホーム="/ルート"

拡張 このスタイルは、次のように複数の部分で構成される文字列を完成させるときに使用されます。
パス名。

その値の XNUMX つが文字列 `接頭辞'、行から部分的に入力された単語
後編が完成しなくても可能な限り展開します。

その値の XNUMX つが文字列 `サフィックス'、後のコンポーネントの名前を一致させる
最初のあいまいなものも追加されます。 これは、結果の文字列が
可能な最長の明確な文字列です。 ただし、メニュー補完は使用できます
すべての試合を循環します。

このスタイルは、任意の補完コンテキストに設定できます。 追加の文字列を指定します
それは常にそのコンテキストで完了します。 それぞれの弦の形は
`:説明'; コロンと説明は省略できますが、任意のリテラル
のコロン バックスラッシュで引用する必要があります。 どれでも 説明 が表示されます
完了リストの値と一緒に。

偽物を指定するときは、十分に制限されたコンテキストを使用することが重要です
文字列。 スタイルに注意してください 偽ファイル   偽パラメータ 追加を提供する
ファイルまたはパラメーターを完了するときの機能。

常に偽物
これは、 それ以外のスタイル 無視されたパターン スタイルは
それに適用されません。 これにより、一連の一致を完全にオーバーライドできます
無視されたパターンを ` に設定することにより*'.

以下は、任意のデータで任意のタグを補足する方法を示していますが、
個別のタグのように表示目的で動作します。 この例では、
の特徴 タグ順 分けるスタイル 名前付きディレクトリ XNUMX つにタグ付けする場合
標準コンプリートで補完を実行する コンプリート の引数について cd.
タグ 名前付きディレクトリ-通常 通常どおりに動作しますが、タグ
名前付きディレクトリ-鉱山 ディレクトリの固定セットが含まれています。 これには次の効果があります。
一致グループの追加 `余分な ディレクトリ' 指定された補完で。

ズスタイル ':完了::完了:cd:*' タグ順 \
'名前付きディレクトリ:-mine:extra\ ディレクトリ
名前付きディレクトリ:-通常:名前付き\ ディレクトリ *'
ズスタイル ':completion::complete:cd:*:named-directories-mine' \
常に偽物 mydir1 mydir2
ズスタイル ':completion::complete:cd:*:named-directories-mine' \
無視されたパターン 「*」

偽ファイル
このスタイルは、ファイルを完成させ、タグなしで検索するときに使用されます。 その値
`の形式ですDIR:名前...'。 これにより、 (で区切られた文字列
スペース) ディレクトリで補完するときに可能な限り一致する DIR、たとえそうでなくても
ファイルは実際に存在します。 dir はパターンの場合があります。 パターン文字またはコロン DIR
文字どおりに扱うには、バックスラッシュで引用する必要があります。

これは、トップレベルが
パス名を一覧表示したり、glob パターンで生成したりすることはできません。 使用することもできます
読み取り権限を持たないディレクトリの場合。

パターン形式を使用して、特定の「マジック」エントリをディレクトリ上のすべてのディレクトリに追加できます。
特定のファイル システム。

偽パラメータ
これは、パラメーター名の補完関数によって使用されます。 その値は名前です
まだ設定されていない可能性がありますが、それでも完了する必要があるパラメーターの。 各
name の後にコロンと、そのタイプを指定する文字列を続けることもできます。
パラメータ(`のようにスカラー'、 `配列'または `整数')。 タイプが指定されている場合は、名前
特定のタイプのパラメータが必要な場合にのみ完了します
環境。 タイプが指定されていない名前は常に補完されます。

ファイルリスト
このスタイルは、ファイルが標準の組み込みメカニズムを使用して完了したかどうかを制御します
に似た長いリストでリストされます ls -l. この機能は
シェルモジュール zsh / stat ファイル情報。 これはビルトインをロードします STAT which
すべての外部を交換します STAT 実行可能。 これを回避するには、次のコードを使用できます
初期化ファイルに含まれています:

zmodload -i zsh / stat
disable STAT

スタイルは `true' 値 (または `')、またはいずれかの値
`insert'または `リスト'、すべてのファイルが長い形式でリストされることを示します
状況、またはファイル名を挿入しようとするとき、またはファイル名をリストするとき
挿入しようとせずに。

より一般的には、値は上記の値のいずれかの配列であり、オプションで
続い =NUM。 場合 NUM が存在すると、一致の最大数が得られます
どのロング リスト スタイルを使用するか。 例えば、

ズスタイル ':完了:*' ファイルリスト リスト=20 挿入=10

最大 20 個のファイルをリストするとき、またはファイルを挿入するときに長い形式を使用することを指定します。
最大 10 個の一致を含むファイル (たとえば、リストが表示されると仮定します。
あいまいな補完の場合)、それ以外の場合は短い形式が使用されます。

ズスタイル -e ':完了:*' ファイルリスト \
'(( ${+数値} )) && 返信=(真)'

数値引数が指定された場合は常に長い形式が使用されることを指定します。
そうでなければ短い形式。

ファイルパターン
これは、ファイル名を補完する標準関数によって使用されます。 _files。 もし
スタイルは未設定で、最大 XNUMX つのタグが提供されます。グロブファイル'、`ディレクトリ'と
`すべてのファイル'、の呼び出し元が期待するファイルの種類に応じて _files.
最初の XNUMX つ (`グロブファイル'と `ディレクトリ') 通常一緒に提供される
サブディレクトリ内のファイルを完成させやすくします。

当学校区の ファイルパターン スタイルは、デフォルトのタグに代わるものを提供します。
中古。 その値は、` の形式の要素で構成されます。パターン:タグ'; 各ストリングは
スペースで区切られた任意の数の指定が含まれます。

当学校区の パターン ファイル名を生成するために使用されるパターンです。 あらゆる出来事
シーケンスの `%p' は、関数呼び出しによって渡された任意のパターンに置き換えられます
_files. パターン内のコロンの前にバックスラッシュを付ける必要があります
の前のコロンと区別できる タグ. 複数のパターンが必要な場合は、
パターンはカンマで区切って中かっこ内に指定できます。

当学校区の タグ値内のすべての文字列の が提供されます _files そしていつ使用されるか
他のスタイルを探しています。 どれでも タグs は同じ言葉で同時に提供されます
時間と後の言葉の前。 ない場合 `:タグ' には `ファイル'タグが使用されます。

当学校区の タグ オプションの XNUMX 番目のコロンと説明が続く場合もあります。
`に使用されます%d' の値で 形式でアーカイブしたプロジェクトを保存します. 代わりにスタイル (設定されている場合)
補完関数によって提供されるデフォルトの説明。 説明の場合
ここに与えられたものは、`%d'、提供された説明に置き換えられます
補完機能によって。

たとえば、 rm コマンドは、最初にオブジェクト ファイルの名前だけを完成させ、
一致するオブジェクト ファイルがない場合は、すべてのファイルの名前:

ズスタイル ':完了:*:*:rm:*:*' ファイルパターン \
'*.o:オブジェクトファイル' '%p:すべてのファイル'

ファイル補完のデフォルトの動作を変更するには -- パターンに一致するファイルを提供します
最初の試行でディレクトリ、次にすべてのファイル -- 一致するもののみを提供します
最初の試行でファイル、次にディレクトリ、最後にすべてのファイル:

ズスタイル ':完了:*' ファイルパターン \
'%p:globbed-files' 「*(-/):ディレクトリ」 '*:すべてのファイル'

これは、特別なパターンがない場合でも機能します。 _files を使用してすべてのファイルに一致
パターン`*' 最初のステップで、このパターンが表示されると停止します。 また注意してください
XNUMX 回の完了試行でパターンを複数回試行することはありません。

完了関数の実行中、 EXTENDED_GLOB オプションが入っています
効果があるので、文字 `#'、 `~'と `^' パターンには特別な意味があります。

ファイルソート
標準のファイル名補完機能は、タグなしでこのスタイルを使用して、
名前をリストする順序を決定します。 メニューの完了は循環します
それらを同じ順序で通過します。 可能な値は次のとおりです。サイズ' で並べ替える
ファイルのサイズ; `リンク' ファイルへのリンク数でソートします。
`変形' (または '時間'または `date') 最終更新時刻でソートします。
`アクセス' 最終アクセス時刻でソートします。 と `アイノード' (または '変化する') でソートする
最後の inode 変更時刻。 スタイルが他の値に設定されているか、設定されていない場合、ファイル
名前のアルファベット順にソートされます。 値に文字列 ` が含まれている場合',
並べ替えは逆の順序で行われます。 値に文字列 ` が含まれている場合 ',
タイムスタンプは、シンボリック リンクのターゲットに関連付けられています。 デフォルトは使用することです
リンク自体のタイムスタンプ。

filter これは、LDAP プラグインが電子メール アドレスを補完するために使用し、
エントリをフィルタリングするときに照合する属性。 たとえば、スタイルが
`に設定されていますsn'、一致は姓に対して行われます。 標準の LDAP フィルタリングが使用されます
そのため、通常の完了マッチングはバイパスされます。 このスタイルが設定されていない場合、LDAP
プラグインはスキップされます。 を設定する必要がある場合もあります。 command 方法を指定するスタイル
LDAP サーバーに接続します。

強制リスト
これにより、一覧表示が行われる任意の時点で補完の一覧が強制的に表示されます。
リストが通常抑制される場合でも。 たとえば、通常
リストは、少なくとも XNUMX つの異なる一致がある場合にのみ表示されます。 設定することにより
このスタイルを `常に'、リストは常に表示されます。
すぐに受け入れられる単一の一致。 スタイルは、
番号。 この場合、少なくともその数があればリストが表示されます
すべてが同じ文字列を挿入する場合でも、一致します。

このスタイルは、デフォルトのタグだけでなく、
現在の完成。 したがって、リストは特定のタイプの
一致しています。

形式でアーカイブしたプロジェクトを保存します. これが 説明 タグ、その値は表示する文字列として使用されます
補完リストの上記の一致。 シーケンス `%d' この文字列の
これらの一致が何であるかの短い説明に置き換えられます。 この文字列は、
で説明されているように、出力属性を指定する次のシーケンスが含まれています。
セクションのプロンプト シーケンスの拡張 ズシュミスク(1): `%B'、 `%S'、 `%U'、 `%F'、 `%K'
とそれに対応する小文字、および `%{...%}'。 `%F'、 `%K'と `%{...%}'
プロンプト展開と同じ形式で引数を取ります。 シーケンス `%G'
利用できません; ` への引数%{' 代わりに使用する必要があります。

スタイルは、現在の補完に対して有効な各タグでテストされてから、
のためにテストされた 説明 鬼ごっこ。 したがって、さまざまなフォーマット文字列を定義できます
さまざまな種類の試合。

一部の補完関数は、追加の ` を定義することにも注意してください。%'-シーケンス。 これらは
それらを利用する完全な機能について説明します。

一部の補完関数は、これを設定することでカスタマイズできるメッセージを表示します
のためのスタイル メッセージ 鬼ごっこ。 ここで、`%d' によって与えられたメッセージに置き換えられます。
完了機能。

最後に、フォーマット文字列が検索されます 警告 タグ、ない場合に使用
一致をまったく生成できませんでした。 この場合、`%d' は
スペースで区切られた予想される一致の説明。 シーケンス
`%D' は、改行で区切られた同じ説明に置き換えられます。

`でprintfスタイルのフィールド幅指定子を使用することが可能です%d' および同様の
エスケープ シーケンス。 これは zフォーマット からの組み込みコマンド
zsh / zutil モジュール、参照 zshモジュールとします。

地球 これはによって使用されます _拡大する コンプリート。 「true」(デフォルト) に設定されている場合、
グロビングは、前の置換の結果の単語に対して試行されます (を参照してください)。
  代替 style) または行の元の文字列。

全体的な これが「true」(デフォルト) に設定されている場合、 _expand_alias コンプリータとバインド可能
コマンドは、グローバル エイリアスを展開しようとします。

グループ名
補完システムは、さまざまなタイプの一致をグループ化できます。
別のリスト。 このスタイルは、特定のグループの名前を付けるために使用できます。
タグ。 たとえば、コマンド位置では、補完システムは次の名前を生成します
組み込みコマンドと外部コマンド、エイリアスの名前、シェル関数とパラメーター、
可能な補完として予約語。 外部コマンドとシェルを用意するには
個別にリストされている機能:

ズスタイル ':completion:*:*:-command-:*:commands' \
グループ名 コマンド
ズスタイル ':completion:*:*:-command-:*:関数' \
グループ名 機能

結果として、同じタグを持つ一致はすべて同じグループに表示されます。

指定された名前が空の文字列の場合、一致するタグの名前は次のようになります
グループの名前として使用されます。 したがって、すべての異なるタイプの一致を取得するには
個別に表示され、次のように設定できます。

ズスタイル ':完了:*' グループ名 ''

グループ名が定義されていないすべての一致は、という名前のグループに入れられます
デフォルト-.

グループオーダー
このスタイルは、 グループ名 表示順序を指定するスタイル
そのスタイルによって定義されたグループの (比較 タグ順、どれを決定します
補完はまったく表示されません)。 名前が付けられたグループは、指定された順序で表示されます。 どれでも
他のグループは、補完関数によって定義された順序で表示されます。

たとえば、組み込みコマンド、シェル関数、および外部コマンドの名前を付けるには
コマンド位置で完了すると、コマンドは次の順序で表示されます。

ズスタイル ':completion:*:*:-command-:*:*' グループオーダー \
ビルトイン 機能 コマンド

グループヘッド UNIX グループの名前のリスト。 これが設定されていない場合、グループ名は
YP データベースまたはファイル `/etc/group'.

隠されました これが「true」に設定されている場合、指定されたコンテキストの一致はリストされません。
で設定された一致の説明はありますが、 形式でアーカイブしたプロジェクトを保存します. スタイルが表示されます。
`に設定されている場合'、説明すら表示されません。

マッチはまだ完了することに注意してください。 リストに表示されないだけです。
一致が可能な完了と見なされることをまったく避けるために、 タグ順
スタイルは以下のように変更できます。

ホスト 完了する必要があるホストの名前のリスト。 これが設定されていない場合、ホスト名
ファイルから取得されます `/etc/hosts'.

ホスト ポート
このスタイルは、ホスト名とネットワーク ポートを必要とする、または受け入れるコマンドで使用されます。
値の文字列は ` の形式である必要がありますhost:ポート'。 有効なポートは
ホスト名の存在によって決定されます。 同じホストに対して複数のポートが存在する可能性があります
現れる。

行を無視
これは、現在の補完に有効なタグごとにテストされます。 に設定されている場合
「true」、すでに行にある単語はどれもとして考慮されません
可能な完了。 `に設定されている場合現在'、カーソルがある単語は
可能な完了とは見なされません。 値 `現在表示されている' 似ています
ただし、補完のリストが現在画面に表示されている場合にのみ適用されます。
最後に、スタイルが ` に設定されている場合その他' を除く行上のすべての単語
現在のものは可能な補完から除外されます。

値 `現在'と `現在表示されているの反対に少し似ています
正確に受け入れる style: 文字が欠落している文字列のみが完成されます。

ほとんどの場合、これを「true」または「その他' のために
` などの一般的なコンテキスト:完了:*'。 これは、それが許可されないためです。
たとえば、問題のコマンドが
オプションを複数回受け入れます。

無視-親
スタイルは、パス名を補完する関数によってタグなしでテストされます。
ですでに言及されているディレクトリの名前を無視するかどうかを決定します
現在の単語、または現在の作業ディレクトリの名前。 値には次を含める必要があります
次の文字列のいずれかまたは両方:

パスがすでに単語に含まれているディレクトリの名前
行は無視されます。 たとえば、後で完了する場合 ふー/../、ディレクトリ
foo 有効な完了とは見なされません。

pwd 現在の作業ディレクトリの名前は完成しません。 したがって、
例、完了後 .. / 現在の名前は使用しません
ディレクトリにあります。

さらに、値には次のいずれかまたは両方が含まれる場合があります。

.. 指定されたディレクトリを無視するのは、行の単語に
部分文字列 `.. /'.

ディレクトリにジョブを開始します。
ディレクトリの名前が次の場合にのみ、指定されたディレクトリを無視します。
ファイルの名前を完成させるときではなく、完成しました。

除外された値は、 無視されたパターン スタイル、
そのため、それらは、 _無視 コンプリート。

非常に冗長
設定されている場合、補完リストはより詳細になりますが、おそらく減少します
完了速度で。 このスタイルが
「本当」。

無視されたパターン
パターンのリスト。 パターンの XNUMX つに一致する試行の完了は、
検討対象外。 の _無視 コンプリータのリストに表示できます
無視された一致を復元するコンプリータ。 これは、より構成可能なバージョンです。
シェル パラメータ $無視.

なお、 EXTENDED_GLOB オプションは完了の実行中に設定されます
関数なので、文字 `#'、 `~'と `^' には特別な意味があります
パターン。

insert このスタイルは、 _all_matches を挿入するかどうかを決定する完了者
リストを別の一致として追加するのではなく、無条件にすべての一致のリストを作成します。

挿入 ID
たとえば、プロセス ID を kill   wait ビルトイン
コマンドの名前は、適切なプロセス ID に変換できます。 問題
入力されたプロセス名が一意でない場合に発生します。 デフォルトでは (またはこのスタイルが
明示的に ` に設定メニュー') 名前はすぐに次のセットに変換されます
可能な ID と、それらを循環するメニュー補完が開始されます。

スタイルの値が ` '、シェルはユーザーが入力するまで待機します
名前を ID に変換する前にコマンドを一意にするのに十分です。 しようとする
その時点まで完了は失敗します。 値がそれ以外の場合
文字列、ユーザーが入力した文字列が長くなると、メニュー補完が開始されます
対応する ID に共通のプレフィックスよりも。

インサートタブ
これが「true」に設定されている場合、補完システムはタブ文字を挿入します
(補完を開始するために使用されたと仮定して) 補完を実行する代わりに
カーソルの左側に非ブランク文字はありません。 に設定されている場合
`false' の場合、そこでも完了します。

値には部分文字列 `ペンディング'または `保留中=ヴァル'。 この中で
の場合、入力された文字は補完を開始する代わりに挿入されます。
保留中の未処理の入力があります。 もし ヴァル が与えられた場合、完了は行われません
未処理の入力の文字が少なくともその数ある場合。 これはしばしば
文字を端末に貼り付けるときに便利です。 ただし、依存していることに注意してください
  $保留中 からの特別なパラメータ zsh / zle モジュールが正しく設定されている
すべてのプラットフォームで保証されているわけではありません。

このスタイルのデフォルト値は、以下の補完を除いて「true」です。 変化した
'false' である組み込みコマンド。

明確な挿入
これはによって使用されます _マッチ   _近似 完了者。 これらのコンプリータは、多くの場合、
入力された単語はメニュー補完で使用されます。
最終完成。 ただし、このスタイルが「true」の場合、コンプリータはメニューを開始します
少なくとも
ユーザーが入力した元の文字列。

の場合 _近似 コンプリータ、コンテキスト内のコンプリータ フィールドは
すでに次のいずれかに設定されています 正しい-NUM or 近似-NUMここで、 NUM
受け入れられたエラーの数。

の場合 _マッチ コンプリータ、スタイルを文字列に設定することもできます
`パターン'。 一致しない場合、行のパターンは変更されません。
明白に。

キーププレフィックス
このスタイルは、 _拡大する コンプリート。 それが「真」の場合、コンプリータは
チルダまたはパラメータ展開を含む接頭辞を保持するようにしてください。 したがって、
たとえば、文字列 `~/f*' は ` に展開されます~/ふー' それ以外の
`/ホーム/ユーザー/フー'。 スタイルが ` に設定されている場合変更' (デフォルト)、プレフィックスは
展開された単語と
コマンドラインからの元の単語。 他の値を指定すると、プレフィックスは強制的に
無条件に拡大。

の行動 _拡大する このスタイルが「true」の場合、 _拡大する あきらめる
プレフィックスが復元された単一の展開が元の展開と同じ場合。 したがって
残りのコンプリータが呼び出される可能性があります。

ラストプロンプト
これは、 ALWAYS_LAST_PROMPT オプション。 それが「本当」なら、
補完システムは、カーソルを前のコマンド ラインに戻そうとします。
完了リストを表示した後。 有効なすべてのタグについてテストされます。
現在の完了、次に デフォルト 鬼ごっこ。 カーソルが元の位置に戻ります
このスタイルがすべてのタイプの一致に対して「true」の場合、前の行。 とは異なり、
ALWAYS_LAST_PROMPT オプション これは、数値引数とは無関係です。

既知のホスト ファイル
このスタイルには、ホスト名を検索するためのファイルのリストが含まれている必要があります。
使用 IP スタイルが設定されている場合) ssh と互換性のある形式の IP アドレス 既知のホスト
ファイル。 設定されていない場合、ファイル / etc / ssh / ssh_known_hosts   〜/ .ssh / known_hosts
使用されています。

リスト このスタイルは、 _history_complete_word バインド可能なコマンド。 に設定されている場合
「true」は効果がありません。 「false」に設定されている場合、一致はリストされません。 これ
特に、リストの動作を制御するオプションの設定をオーバーライドします
AUTO_LIST. コンテキストは常に ` で始まります:completion:歴史の言葉'.

リストの色
Status zsh / complist モジュールがロードされ、このスタイルを使用して色を設定できます
仕様。 このメカニズムは、 ZLS_COLORS   ZLS_COLORS
のセクション「zsh/complist モジュール」で説明されているパラメータ zshモジュール(1)、しかし
構文は同じです。

このスタイルが デフォルト タグ、値の文字列は次のように解釈されます
どこでも使える仕様。 他のタグに設定されている場合、
仕様は、タグで記述されたタイプの一致にのみ使用されます。 ために
これが最もうまく機能するために、 グループ名 style は空の文字列に設定する必要があります。

特定のタグのスタイルを設定するだけでなく、グループを使用することも可能です
によって明示的に指定された名前 グループ名 ` と一緒にタグ付けします(グループ)' 構文
によって許可された ZLS_COLORS   ZLS_COLORS パラメータを使用して デフォルト
タグ。

GNU版で設定済みの色仕様をそのまま利用可能
ls コマンド:

ズスタイル ':完了:*:デフォルト' リストの色 \
${(s.:.)LS_COLORS}

デフォルトの色は GNU と同じです。 ls コマンドで取得できます
スタイルを空の文字列に設定します (つまり '').

リストディレクトリの先頭
これはファイル補完で使用されます。 設定されている場合、完了するディレクトリがリストされます
タグの順序に関係なく、他のファイルの完了とは別に、完了前に。
さらに、タグは その他のファイル の代わりに使用されます すべてのファイル 残りのために
files で、そのタグでディレクトリが表示されないことを示します。

リストグループ化
このスタイルが「true」(デフォルト) の場合、補完システムは次のようにしようとします。
一致をグループ化することにより、特定の完了リストがよりコンパクトになります。 たとえば、オプション
同じ説明を持つコマンドの場合 ( 詳細 スタイルはに設定されています
`true') は単一のエントリとして表示されます。 ただし、メニュー選択を使用して
すべての試合を循環します。

リストパック
これは、現在のコンテキストで有効な各タグと、 デフォルト
鬼ごっこ。 「true」に設定されている場合、対応する一致が次のようにリストに表示されます。
  LIST_PACKED オプションを設定しました。 「false」に設定されている場合、それらはリストされます
正常に。

リストプロンプト
このスタイルが デフォルト に収まらないタグ​​、補完リスト
画面をスクロールすることができます (の説明を参照してください zsh / complist のモジュール
zshモジュール(1))。 空の文字列でない場合、値は毎回の後に表示されます
画面いっぱいに表示され、シェルはキーを押すように求めます。 スタイルが
空の文字列。デフォルトのプロンプトが使用されます。

値にはエスケープ シーケンスを含めることができます。%l'または `%L' に置き換えられます
表示された最後の行の数と行の総数。 `%m'または `%M',
表示された最後の試合の数と合計試合数。 と `%p'と
`%P'、 `Top' リストの先頭にある場合、'ボトム' 終了時と
それ以外の場合、位置は全長のパーセンテージとして表示されます。 いずれの場合も、
大文字のフォームは固定幅の文字列に置き換えられ、パディングされます
右側にスペースがあり、小文字の形式は変数に置き換えられます
幅の文字列。 他のプロンプト文字列と同様に、エスケープ シーケンス `%S'、 `%s'、 `%B',
`%b'、 `%U'、 `%u' 表示モードを開始および終了するための、目立つ、太字、および
下線、および `%F'、 `%f'、 `%K'、 `%k' 前景の背景を変更するため
色、フォームも利用できます `%{...%}' エスケープ シーケンスを囲むため
ゼロ (または、数値引数を指定すると、その他の) 幅で表示されます。

このプロンプトを削除した後、変数 リストプロンプト 削除するには設定を解除する必要があります
有効にします。

リスト行が最初
このスタイルは、 リストパック スタイルと決定
マッチを行優先でリストするかどうか LIST_ROWS_FIRST
オプションを設定しました。

リストサフィックス
このスタイルは、ファイル名を補完する関数で使用されます。 それが「真」の場合、および
部分的に入力された複数のパス名を含む文字列に対して補完が試行されました
コンポーネント、すべてのあいまいなコンポーネントが表示されます。 それ以外の場合、完了は次の時点で停止します
最初のあいまいなコンポーネント。

リストセパレーター
このスタイルの値は、補完リストで文字列を分離するために使用されます。
可能な場合は説明から完成させます (例: オプションを完成させるとき)。 それ
デフォルトは `--' (XNUMX つのハイフン)。

ローカル これは、対応するファイルの URL を完成させる関数で使用するためのものです。
ファイルシステムから直接利用できます。 その値は XNUMX で構成する必要があります
文字列: ホスト名、サーバーのデフォルト Web ページへのパス、および
ホームエリア内に Web ページを配置するユーザーが使用するディレクトリ名。

具体的な例を挙げますと、以下の通りです。

ズスタイル ':完了:*' ローカル トースト \
/var/http/パブリック/トースト public_htmlの

` の後の補完http://toast/stuff/' ディレクトリ内のファイルを検索します
/var/http/public/toast/stuff、`の後の完了中http://toast/~yousir/' 意思
ディレクトリ内のファイルを探します ~yousir/public_html.

メールディレクトリ
設定されている場合、zsh は、メールボックス ファイルが指定されたディレクトリにあると想定します。
デフォルトは `~/メール'.

マッチオリジナル
これはによって使用されます _マッチ コンプリート。 に設定されている場合 , _マッチ しようとします
` を挿入せずに一致を生成する*' カーソル位置。 いずれかに設定した場合
その他の空でない値の場合、最初に、挿入せずに一致を生成しようとします。
`*' 一致するものがない場合は、' を使用して再試行します。*」を挿入しました。 それであれば
設定されていないか空の文字列に設定されている場合、マッチングは `*'
挿入されました。

マッチャー
このスタイルは、現在のコンテキストで有効なタグごとに個別にテストされます。 これは
によって指定された一致仕様の前に、値が試行されます。 マッチャーリスト スタイル。 それ
のセクション `Completion Matching Control' で説明されている形式にする必要があります。
zshcompwid(1)。 この例については、 タグ順 スタイル。

マッチャーリスト
このスタイルは、適用される一致仕様のリストに設定できます
どこにでも。 マッチの仕様については、セクション「補完マッチング」で説明されています。
コントロールイン zshcompwid(1)。 補完システムはそれらを次々と試します
選択されたコンプリータごとに。 たとえば、最初に簡単な補完を試して、
一致を生成せず、大文字と小文字を区別しない補完:

ズスタイル ':完了:*' マッチャーリスト '' 'm:{a-zA-Z}={A-Za-z}'

デフォルトでは、各指定は前の指定を置き換えます。 ただし、
仕様の前に +、既存のリストに追加されます。 したがって、
繰り返しなしでますます一般的な仕様を作成することが可能:

ズスタイル ':完了:*' マッチャーリスト \
'' '+m:{az}={AZ}' '+m:{AZ}={az}'

特定のコンプリーターに有効なマッチ仕様を作成することができます。
コンテキストの XNUMX 番目のフィールドを使用します。 これは、次の完了者にのみ適用されます。
この記事の執筆時点でのみ含まれているグローバルマッチャーリストをオーバーライドします _prefix
  _無視. たとえば、コンプリータを使用するには _完了   _prefix しかし許可する
大文字と小文字を区別しない補完のみ _完了:

ズスタイル ':完了:*' 完了 _完了 _prefix
ズスタイル ':完了:*:完了:*:*:*' マッチャーリスト \
'' 'm:{a-zA-Z}={A-Za-z}'

で説明したユーザー定義名 完了 スタイル、利用可能です。 これ
異なるマッチで同じコンプリーターを複数回試行できるようにします
毎回仕様。 たとえば、一致せずに通常の完了を試みるには
指定、次に大文字と小文字を区別しない一致による通常の完了、次に
訂正、最後に単語の部分補完:

ズスタイル ':完了:*' 完了 \
_完了 _正しい _complete:foo
ズスタイル ':完了:*:完了:*:*:*' マッチャーリスト \
'' 'm:{a-zA-Z}={A-Za-z}'
ズスタイル ':完了:*:foo:*:*:*' マッチャーリスト \
'm:{a-zA-Z}={A-Za-z} r:|[-_./]=* r:|=*'

どのコンテキストでもスタイルが設定されていない場合、マッチ仕様は適用されません。 また注意してください
そのようないくつかのコンプリータ _正しい   _近似 マッチを使わない
ただし、これらのコンプリーターは一度しか呼び出されません
もし マッチャーリスト 複数の要素が含まれています。

複数の仕様が役立つ場合は、 全体 完成です
の各要素に対して マッチャーリスト、シェルのパフォーマンスを急速に低下させる可能性があります。
大まかな目安として、XNUMX ~ XNUMX 本の弦で十分なパフォーマンスが得られます。
一方、スペースで区切られた複数の値を同じ文字列に入れる
パフォーマンスに大きな影響はありません。

現在のマッチャーがないか空の場合、オプション NO_CASE_GLOB である
その結果、ファイルの照合は大文字と小文字を区別せずに実行されます。
ただし、マッチャーは大文字と小文字を区別しないマッチングを明示的に指定する必要があります。
必要。

最大エラー
これはによって使用されます _近似   _正しい 決定する完全関数
許可するエラーの最大数。 コンプリータは補完を生成しようとします
一致するか、または
一致が見つかったか、このスタイルで指定されたエラーの最大数に達しました
に達した。

このスタイルの値に文字列 ` が含まれている場合数値の'、コンプリータ関数
許容されるエラーの最大数として任意の数値引数を取ります。 ために
例、

ズスタイル ':完了:*:概算:::' 最大エラー 2 数値の

数値引数を指定せずに数値引数を指定すると、XNUMX つのエラーが許容されます
XNUMX のうち (` のように)ESC-6 TAB')、最大 XNUMX つのエラーが受け入れられます。 したがって、値は
`0 数値の'、数値引数でない限り、修正補完は試行されません
与えられます。

値に文字列 ` が含まれている場合非数値'、コンプリータは にしよう
数値引数が与えられたときに修正された補完を生成するため、この場合
指定する数値は XNUMX より大きくする必要があります。 たとえば、2 非数値' を指定します
通常は XNUMX 回のエラーで修正完了が実行されますが、
数値引数が与えられた場合、修正補完は行われません。

このスタイルのデフォルト値は `2 数値の'.

最大一致幅
このスタイルは、使用されるディスプレイの幅の間のトレードオフを決定するために使用されます
一致の場合、およびその説明に使用される幅 詳細 スタイルは
効果。 この値は、一致のために予約する表示列の数を示します。
デフォルトは画面幅の半分です。

これは、複数の一致が同じ説明を持つ場合に最も影響が大きく、
一緒にグループ化されます。 スタイルを上げると、より多くの一致をグループ化できます
一緒; 減らすと、より多くの説明が表示されます。

メニュー これが、現在の
補完メニュー補完が使用されます。 特定のタグの値は
`のそれよりも優先されますデフォルト' 鬼ごっこ。

この方法で見つかった値のいずれも「true」ではなく、少なくとも XNUMX つが true に設定されている場合
`オート'、シェルはあたかも 自動メニュー オプションが設定されています。

値の XNUMX つが明示的に「false」に設定されている場合、メニュー補完は
明示的にオフにして、 メニュー_完了 オプションとその他の設定。

`の形式ではい=NUM'、どこで `はい' は、「真の」値のいずれかです (`はい'、 `true',
`on'と `1')、少なくともある場合、メニュー補完がオンになります NUM 一致します。
`の形式ではい=長い'、リストが収まらない場合、メニュー補完がオンになります
画面上。 ウィジェットが通常のみの場合、これはメニュー補完をアクティブにしません
補完をリストしますが、その場合、値を使用してメニュー補完をアクティブにすることができます
`はい=ロングリスト' (通常、値 `select=ロングリスト' 後述
スクロールを制御できるので便利です。)

同様に、`false' 値のいずれか (`いいえ=10')、メニューの完了は
ある場合に使用する NUM 以上の試合。

このウィジェットの値は、によって実装されるように、メニュー選択も制御します。
zsh / complist モジュール。 次の値は、横または代わりに表示される場合があります
上記の値の。

値に文字列 ` が含まれている場合select'、メニュー選択が開始されます
無条件に。

`の形式でselect =NUM'、メニュー選択は、少なくともある場合にのみ開始されます
NUM 一致します。 複数のタグの値が数値を提供する場合、最小の
番号が取られます。

を含む値を定義することにより、メニュー選択を明示的にオフにすることができます。
文字列`無選択'.

一致のリストが一致しない場合にのみ、メニュー選択を開始することもできます。
値 ` を使用して画面に合わせる選択=ロング'。 メニュー選択を開始するには
現在のウィジェットがリストのみを実行する場合は、値 ` を使用しますselect=ロングリスト'.

特定の数のメニューがある場合に、メニューの完了またはメニューの選択をオンにするには
マッチ or 一致のリストが画面に収まりません。両方とも `はい='と
`select =' は XNUMX 回指定できます。XNUMX 回は数字で、もう XNUMX 回は ` です。長い' また
`ロングリスト'.

最後に、メニュー選択の XNUMX つの特別なモードを有効にすることができます。 言葉
`相互作用的値に ' を指定すると、すぐにインタラクティブ モードに入ります。
メニュー選択が開始されます。 の説明を参照してください zsh / complist のモジュール
zshモジュール(1) 対話モードの説明。 文字列 ` を含むサーチ'
インクリメンタル検索モードでも同じことを行います。 逆方向インクリメンタル検索を選択するには、
文字列 ` を含めます逆方向検索'.

ムットルク 設定されている場合、mutt 構成ファイルの場所を指定します。 デフォルトでは
`〜/ .muttrc'.

番号
これは、 jobs 鬼ごっこ。 「true」の場合、シェルはジョブを完了します
ジョブ コマンド テキストの最も短い明確なプレフィックスの代わりに数字を使用します。 もし
値は数値です。ジョブ番号は、ジョブからの単語数が多い場合にのみ使用されます
あいまいさを解決するには、説明が必要です。 たとえば、値が
`1'、文字列は、すべてのジョブの最初の単語が異なる場合にのみ使用されます
コマンドライン。

古いリスト
これはによって使用されます _oldlist コンプリート。 `に設定されている場合常に'、次に標準
リストを実行するウィジェットは、現在の一致リストを保持しますが、
生成されました; これは、値 ` で明示的にオフにすることができます決して'、与える
のない振る舞い _oldlist コンプリート。 スタイルが設定されていない場合、またはその他の場合
値の場合、補完の既存のリストが表示されていない場合は表示されます。
それ以外の場合は、標準の補完リストが生成されます。 これがデフォルトの動作です
of _oldlist. ただし、古いリストがあり、このスタイルに次の名前が含まれている場合
リストを生成したコンプリーター関数の場合、古いリストが使用されます
リストを行わないウィジェットによって生成された場合。

たとえば、次のように入力するとします。 ^Xc 使用します _正しい_単語 生成するウィジェット
カーソル下の単語の修正リスト。 通常、タイピング ^D でしょう
コマンドラインで単語の補完の標準リストを生成し、表示します
それか。 と _oldlist、代わりにすでに修正のリストが表示されます
生成された。

別の例として、 _マッチ コンプリータ: で 明確な挿入
「true」に設定すると、共通のプレフィックス文字列がある場合にのみ挿入されます。 しかし、
これにより、元のパターンの一部が削除される可能性があるため、さらに完成させることができます
最初の試行よりも多くの一致を生成します。 を使用することにより、 _oldlist 完了
このスタイルを _マッチ、最初に生成された一致のリスト
試行が再び使用されます。

古いマッチ
これはによって使用されます _all_matches マッチの古いリストかどうかを決定するコンプリータ
存在する場合は使用する必要があります。 これは、'true' 値の XNUMX つまたは
文字列`'。 値が ` の場合', _all_matches 古いリストのみを使用します
現在生成されている一致のリストには影響しません。

このスタイルが設定されている場合、通常、 _all_matches 完了
無条件に。 考えられる用途の XNUMX つは、このスタイルまたは 完了
で定義されます -e オプション ズスタイル スタイルを条件付きにします。

古いメニュー
これはによって使用されます _oldlist コンプリート。 メニュー補完の動作を制御します
補完が既に挿入されていて、ユーザーが標準を入力したとき
などの完了キー TAB. のデフォルトの動作 _oldlist そのメニューですか
補完は常に既存の補完のリストで続行されます。 このスタイルなら
は「false」に設定されていますが、古いリストがあった場合、新しい補完が開始されます。
別の完了コマンドによって生成されました。 これは、
_oldlist コンプリート。

たとえば、次のように入力するとします。 ^Xc 修正リストとメニューを生成する
完了は、通常の方法の XNUMX つで開始されます。 通常、またはこのスタイルを
「false」、入力 TAB この時点で、現在のように行を完成させようとし始めます
が表示されます。 と _oldlist、代わりにのリストを循環し続けます
訂正。

オリジナル
これはによって使用されます _近似   _正しい オリジナルかどうかを決定する完成者
string を補完候補として追加する必要があります。 通常、これは次の場合にのみ行われます。
少なくとも XNUMX つの可能な修正がありますが、このスタイルが「true」に設定されている場合、
常に追加されます。 スタイルは、コンプリート フィールドで検査されることに注意してください。
に設定されたコンテキスト名 正しい-NUM or 近似-NUMここで、 NUM の数です
受け入れられたエラー。

パッケージセット
このスタイルは、Debian `dpkgプログラム。 それ
特定のコンテキストのデフォルト パッケージ セットのオーバーライドが含まれています。 例えば、

ズスタイル ':completion:*:complete:dpkg:option--status-1:*' \
パッケージセット 役に立つ

インストールされたパッケージだけでなく、利用可能なパッケージを完成させます
`dpkg - 状態'.

path 色名を補完する関数は、このスタイルを タグ。 ザ·
値は、色名を含むファイルのパス名である必要があります。
X11 rgb.txt ファイル。 スタイルが設定されていないが、このファイルがさまざまなファイルのいずれかにある場合
標準の場所は、デフォルトとして使用されます。

パス補完
これは、ファイル名補完で使用されます。 デフォルトでは、ファイル名補完はすべてを調べます
パスのコンポーネントを調べて、そのコンポーネントの補完があるかどうかを確認します。 ために
例、 /u/b/z に完了することができます /usr/bin/zsh. このスタイルを明示的に
「false」は、パス コンポーネントに対してこの動作を禁止します。 / カーソルの前;
これはの設定を上書きします 受け入れる正確なディレクトリ.

スタイルが「false」に設定されていても、複数のパスを完成させることができます
オプションを設定することで COMPLETE_IN_WORD カーソルを最初に戻す
完了するパス内のコンポーネント。 例えば、 /u/b/z に完了することができます
/usr/bin/zsh カーソルが /u.

pine ディレクトリ
設定されている場合、PINE メールボックス ファイルを含むディレクトリを指定します。 ありません
このディレクトリを再帰的に検索することは、
パインを使用しません。

ポート 完了するインターネット サービス名 (ネットワーク ポート) のリスト。 これが設定されていない場合、
サービス名はファイルから取得されます `/etc/services'.

プレフィックス非表示
これは、共通のプレフィックスを共有する特定の補完に使用されます。たとえば、
ダッシュで始まるコマンド オプション。 「true」の場合、プレフィックスは
マッチリストに表示されます。

このスタイルのデフォルト値は「false」です。

プレフィックスが必要
このスタイルは、共通のプレフィックスとの一致にも関連しています。 に設定されている場合
「true」: 一致を生成するには、ユーザーがこの共通のプレフィックスを入力する必要があります。

スタイルはに適用されます オプション, 信号, jobs, 機能, パラメータ
完了タグ。

コマンド オプションの場合、これは最初の `-'、 `+'、または `--' を入力する必要があります
オプション名が完了する前に明示的に。

シグナルの場合、最初の `-' は信号名が完了する前に必要です。

ジョブの場合、頭文字の `%ジョブ名が完了する前に ' が必要です。

関数名とパラメーター名の場合、最初の `_'または `.' 関数の前に必要です
またはそれらの文字で始まるパラメーター名が完成します。

このスタイルのデフォルト値は「false」です。 function   パラメーター 完了、
それ以外の場合は「真」。

保存プレフィックス
このスタイルは、パス名を完成させるときに使用されます。 その値はパターンでなければなりません
単語の最初の接頭辞を一致させて補完し、そのままにしておく必要があります
あらゆる状況下で。 たとえば、一部の Unices では、最初の `//' (ダブル
スラッシュ) には特別な意味があります。 このスタイルを文字列に設定 `//' 保存します
それ。 別の例として、このスタイルを ` に設定すると、?:/' Cygwin では許可されます
` の後の補完a:/...' 等々。

範囲 これはによって使用されます _歴史 コンプリータと _history_complete_word バインド可能な
どの単語を補完するかを決定するコマンド。

単一の数字の場合、最後の数字のみ N 歴史の言葉が完成します。

` の形式の範囲の場合マックス:スライス'、 最後 スライス 言葉が完成します。
一致が得られない場合、 スライス それらの前の言葉が試されるなど
の上。 このプロセスは、少なくとも XNUMX つの一致が見つかった場合、または マックス 言葉
試されました。

デフォルトでは、履歴からすべての単語を一度に完成させます。

再帰ファイル
このスタイルが設定されている場合、その値はテスト対象のパターンの配列です
`$障害者/': 末尾のスラッシュに注意してください。これにより、パターン内のディレクトリを
両側にスラッシュを含めることで明確に区切られます。 通常のファイルの場合
完了は失敗し、コマンド ラインの単語にはまだディレクトリがありません
part をその名前に変更すると、補完と同じタグを使用してスタイルが取得されます
試行しただけで、次にテストされた要素 $障害者/ 順番に。 ひとつでも合っていれば、
次に、シェルはコマンドラインの単語を先頭に追加して、完了を再試行します
の展開の各ディレクトリで **/*(/) 順番に。 通常、の要素
スタイルは、現在のディレクトリの下にあるディレクトリの数を制限するように設定されます
たとえば、`*/。ギット/*'.

たとえば、

ズスタイル ':完了:*' 再帰ファイル 「*/zsh/*」

現在のディレクトリが /home/pws/zsh/Srcをタップし、その後、 zle_trTAB に完了することができます
Zle/zle_tricky.c.

レギュラー
このスタイルは、 _expand_alias コンプリータおよびバインド可能なコマンド。 に設定した場合
`true' (デフォルト)、通常のエイリアスは展開されますが、コマンドでのみ
位置。 「false」に設定すると、通常のエイリアスは展開されません。 それであれば
`に設定されています常に'、通常のエイリアスはコマンドでなくても展開されます
位置。

再ハッシュ 外部コマンドを完了するときにこれが設定されている場合、内部リスト (ハッシュ)
コマンドは、検索ごとに更新されます。 再ハッシュ 指図。 があります
これによる速度の低下は、ディレクトリが
パスのファイル アクセスが低速です。

リモートアクセス
「false」に設定すると、特定のコマンドがインターネットに接続できなくなります
リモート情報を取得するための接続。 これには、
CVS

接続が実際にリモート サイトへのものであるかどうかを常に知ることができるとは限らないため、
不必要に防止される場合もあります。

すべての重複を削除
当学校区の _history_complete_word bindable コマンドと _歴史 コンプリータはこれを使用して
連続するだけでなく、すべての重複一致を削除するかどうかを決定します
重複します。

選択-プロンプト
これが デフォルト タグ、その値はメニュー中に表示されます
選択 ( メニュー 上記のスタイル) 補完リストが
画面全体。 と同じエスケープ リストプロンプト スタイルを理解し、
ただし、数字はマークのあるマッチまたはラインを示しています。 デフォルト
値が空の文字列の場合、prompt が使用されます。

選択-スクロール
このスタイルは、 デフォルト タグを付けて、補完リストがどのようになるかを決定します
メニュー選択中のスクロール ( メニュー 上記様式)完成時
リスト全体が画面に収まりません。 値が ` の場合0' (ゼロ)、リスト
半画面分スクロールされます。 正の整数の場合、リストはスクロールされます
指定された行数で; 負の数の場合、リストは
screenful から指定された行数の絶対値を引いたもの。 デフォルトは
XNUMX 行ずつスクロールします。

セパレートセクション
このスタイルは、 マニュアル マニュアルページの名前を完成させるときのタグ。 もしも
「true」です。異なるセクションのエントリは、タグ名を使用して個別に追加されます
形式の `マニュアル。X'、 どこ X セクション番号です。 とき グループ名
も有効で、異なるセクションのページが別々に表示されます。 これ
スタイルも同様に使用されます 言葉 の単語を完成させるときのスタイル
dict コマンド。 異なる辞書データベースの単語を追加できます
別々に。 このスタイルのデフォルトは「false」です。

あいまいさを示す
Status zsh / complist モジュールがロードされている場合、このスタイルを使用して最初のモジュールを強調表示できます
補完リストのあいまいな文字。 値は色表示のいずれかです
によってサポートされているものなど リストの色 スタイル、または値が「true」の場合、
下線のデフォルトが選択されています。 強調表示は、
補完表示文字列は、実際の一致に対応しています。

ショーコンプリータ
新しいコンプリータが試行されるたびにテストされます。 true の場合、補完システム
リスト領域に進行状況メッセージを出力し、コンプリート中の内容を示します
試しました。 完了が見つかった場合、メッセージは出力によって上書きされます
完了後に削除されます。

単一無視
これはによって使用されます _無視 一致が XNUMX つしかない場合は完了です。 その値なら
は `表示する'、単一の一致が表示されますが、挿入されません。 値が
`メニュー' の場合、単一の一致と元の文字列の両方が一致として追加され、
メニューの補完が開始され、どちらかを簡単に選択できます。

sort 多くの完了ウィジェットの呼び出し _説明 かどうかを決定するある時点で
マッチはソートされた状態またはソートされていない状態で追加されます (多くの場合、間接的に _欲しかった or _リクエスト済み).
このスタイルは、通常の `true' または `false' 値のいずれかに明示的に設定できます。
オーバーライド。 コンテキストに設定されていない場合、呼び出しの標準的な動作
ウィジェットが使用されます。

スタイルは、タグを含む完全なコンテキストに対して最初にテストされます。
タグのないコンテキストに対して値を生成できません。

呼び出し元のウィジェットがソートされていない一致を明示的に要求する場合、これは通常
光栄です。 ただし、コマンドの補完のデフォルトの (ソートされていない) 動作は、
履歴は、スタイルを「true」に設定することで上書きできます。

_拡大する completeer が「true」に設定されている場合、生成される展開は
常にソートされます。 `に設定されている場合メニュー' の場合、展開は次の場合にのみソートされます
それらは単一の文字列として提供されますが、可能なすべてを含む文字列ではありません
拡張。

特別ディレクトリ
通常、完了コードはディレクトリ名を生成しません `.'と `..' なので
可能な完了。 このスタイルが「true」に設定されている場合、両方の「.'と
`..'可能な限り補完; `に設定されている場合..'、'のみ..」が追加されます。

次の例のセット 特別ディレクトリ に `..' 現在のプレフィックスが空の場合、
単一の `.'、または ` で始まるパスのみで構成される.. /'。 そうでなければ、
値は「false」です。

ズスタイル -e ':完了:*' 特別ディレクトリ \
'[[ $ PREFIX = (../)#(|.|..) ]] && 返信=(..)'

スクイーズスラッシュ
「true」に設定すると、ファイル名パスの一連のスラッシュ (たとえば、
`フー//バー') は単一のスラッシュとして扱われます。 これは UNIX の通常の動作です。
パス。 ただし、デフォルトでは、ファイル補完関数はあたかも存在するかのように動作します。
`*' スラッシュの間。

stop 「true」に設定すると、 _history_complete_word バインド可能なコマンドは、次の場合に一度停止します
履歴の最初または最後に到達します。 呼び出し中 _history_complete_word 意志
次に、履歴の反対側に戻ります。 このスタイルが
`false' (デフォルト), _history_complete_word メニューのようにすぐにループします
完了。

ストリップコメント
「true」に設定すると、このスタイルにより、重要でないコメント テキストが削除されます。
完了一致。 現在、電子メールアドレスを完成させるときにのみ使用されます
アドレスから表示名を削除し、単純なものに切り詰めます
user @ host フォーム。

サブグロブのみ
これはによって使用されます _拡大する コンプリート。 「true」に設定されている場合、展開は
グロビングの結果である場合にのみ使用されます。 したがって、拡大が
活用 代替 以下で説明するスタイルですが、これらはそれ以上変更されませんでした
グロビング、展開は拒否されます。

このスタイルのデフォルトは「false」です。

代替
このブーリアン スタイルは、 _拡大する コンプリータは最初に展開を試みます
文字列内のすべての置換 (` など)$(...)'と `${...}')。

デフォルトは「真」です。

サフィックス これはによって使用されます _拡大する 単語がチルダで始まる場合、または単語が含まれている場合は補完子
パラメータ展開。 「true」に設定されている場合、単語は次の場合にのみ展開されます。
接尾辞がない、つまり ` のようなものである場合~ふー'または `$ foo' それよりも
`〜ふー/'または `$foo/バー'、そのサフィックス自体に適格な文字が含まれていない限り
拡張。 このスタイルのデフォルトは「true」です。

タグ順
これにより、特定のアプリケーションで使用可能なタグをソートするメカニズムが提供されます。
コンテキストが使用されます。

スタイルの値は、スペースで区切られたタグのリストのセットです。 のタグ
各値は同時に試行されます。 一致が見つからない場合、次の値は
使用済み。 (参照してください ファイルパターン この動作の例外のスタイル。)

具体的な例を挙げますと、以下の通りです。

ズスタイル ':completion:*:complete:-command-:*:*' タグ順 \
'コマンド 機能'

コマンド位置での補完が最初に外部コマンドを提供することを指定し、
シェル関数。 補完が見つからない場合は、残りのタグが試行されます。

タグ名に加えて、値の各文字列は次のいずれかを取ることができます
フォーム:

- ハイフンのみで構成される値がある場合、 で指定されたタグ
他の値が生成されます。 通常、明示的に選択されていないすべてのタグは、
指定されたタグが一致を生成できなかった場合、最後に試行されます。 これの意味は
単一のハイフンのみで構成される単一の値は、補完をオフにします。

! タグ...
感嘆符で始まる文字列は、タグの名前を指定します。
使用する。 効果は、他のすべての可能なタグの場合と同じです
コンテキストがリストされていました。

タグ:ラベル ...
ここでは、 タグ は標準タグの XNUMX つであり、 ラベル 任意の名前です。
一致は通常どおり生成されますが、名前 ラベル コンテキストで使用されます
タグ. これは、で始まる単語では役に立ちません。 !.

Status ラベル ハイフンで始まり、 タグ の先頭に追加されます ラベル 形成する
ルックアップに使用される名前。 これを使用して、完了システムを作成できます。
異なるスタイル設定を指定して、特定のタグを複数回試す
各試み; 例については、以下を参照してください。

タグ:ラベル:説明
これまで通りですが、 説明 `を置き換えます%d' の値で 形式でアーカイブしたプロジェクトを保存します.
補完によって提供されるデフォルトの説明の代わりにスタイル
関数。 説明内のスペースは、バックスラッシュで引用する必要があります。 あ
`%d'に登場 説明 によって与えられた説明に置き換えられます
完了機能。

上記のフォームのいずれかで、タグはフォーム内のパターンまたは複数のパターンである可能性があります
`{pat1,パット2...}'。 この場合、特定のタグを除いて、一致するすべてのタグが使用されます。
同じ文字列で明示的に。

これらの機能の XNUMX つの使用法は、XNUMX つのタグを複数回試して、他のスタイルを設定することです。
試行ごとに異なりますが、他のすべてのタグを使用する必要はありません
それらをすべて繰り返します。 たとえば、コマンドで関数名を補完するには
position は最初のアンダースコアで始まるすべての補完関数を無視します
時間の完了が試行されます:

ズスタイル ':completion:*:*:-command-:*:*' タグ順 \
'関数:-non-comp *' 機能
ズスタイル ':completion:*:functions-non-comp' \
無視されたパターン '_*'

最初の試行では、すべてのタグが提供されますが、 機能 タグになります
と取り換える 関数非コンプを選択します。 無視されたパターン このタグのスタイルは
アンダースコアで始まる関数を除外します。 一致がない場合、XNUMX 番目の
の値 タグ順 デフォルトを使用して機能を完了するスタイルが使用されます
タグ、今回はおそらくすべての関数名が含まれています。

XNUMX つのタグの一致は、異なるグループに分割できます。 例えば:

ズスタイル ':完了:*' タグ順 \
'オプション:-ロング:ロング\ オプション
オプション:-ショート:ショート\ オプション
オプション:-単一文字:単一\ 手紙\ オプション」
ズスタイル ':completion:*:options-long' \
無視されたパターン '[-+](|-|[^-]*)'
ズスタイル ':completion:*:options-short' \
無視されたパターン '--*' 「[-+]?」
ズスタイル ':completion:*:options-single-letter' \
無視されたパターン '???*'

グループ名 スタイルセット、`で始まるオプション--'、で始まるオプション
単一の `-'または `+' ただし、複数の文字と XNUMX 文字のオプションを含む
説明の異なる別のグループに表示されます。

パターンのもう XNUMX つの用途は、複数の一致指定を次々に試すことです。
当学校区の マッチャーリスト スタイルは似たようなものを提供しますが、開発の初期段階でテストされています。
補完システムであるため、単一のコマンドやより具体的なコマンドには設定できません
コンテキスト。 マッチ指定なしで正常終了を試す方法は次のとおりです
一致が生成されない場合は、大文字と小文字を区別しない一致で再試行します。
コマンドの引数への影響を制限する foo:

ズスタイル ':完了:*:*:foo:*:*' タグ順 「*」 '*:-場合'
ズスタイル ':completion:*-case' マッチャー 'm:{az}={AZ}'

まず、完了後に提供されるすべてのタグ foo 通常の
タグ名。 それが一致を生成しない場合、XNUMX 番目の値 タグ順 使用されている、
すべてのタグを再試行しますが、今回はそれぞれが -場合 そのに追加
スタイルのルックアップの名前。 したがって、今回は マッチャー からのスタイル
へのXNUMX回目の電話 ズスタイル この例では、補完を行うために使用されています
大文字小文字を区別しません。

使用することが可能です -e オプションの ズスタイル 指定する組み込みコマンド
特定のタグの使用条件。 例えば:

ズスタイル -e '*:-指図-:*' タグ順 '
if [[ -n $プレフィックス$サフィックス ]]; その後
返信=( )
ほかに
返信=( - )
ふーん

コマンド位置での補完は、これまでに入力された文字列が
空ではない。 これは、 プレフィックス 特別なパラメータ; zshcompwid を参照してください
補完ウィジェット内で特別なパラメーターの説明。 設定
返信 空の配列を指定すると、すべてのタグを一度に試すというデフォルトの動作が提供されます。
ハイフンのみを含む配列に設定すると、すべてのタグの使用が無効になり、
したがって、すべての完了の。

ない場合 タグ順 スタイルはコンテキストに対して定義されており、文字列 `(|*-)引数-*
(|*-)オプション-* 'と `オプション' および補完によって提供されるすべてのタグ
関数は、引数を発生させる賢明なデフォルトの動作を提供するために使用されます
(通常のコマンド引数かオプションの引数か) の前に完了する
ほとんどのコマンドのオプション名。

URLは これは、 URLは URL を完成させる機能によるタグ付け。

値が複数の文字列で構成されている場合、または唯一の文字列が名前ではない場合
ファイルまたはディレクトリの場合、文字列は完成する URL として使用されます。

値に通常のファイルの名前である文字列が XNUMX つしか含まれていない場合、URL
そのファイルから取得されます (URL は空白または
改行)。

最後に、値内の唯一の文字列がディレクトリの名前である場合、ディレクトリ階層
このディレクトリをルートにすると、補完が得られます。 最上位ディレクトリは
`などのファイルアクセス方法HTTP'、 `FTP'、 `ブックマーク' 等々。 多くの場合
ディレクトリの次のレベルはファイル名になります。 ディレクトリ階層は
必要なだけ深く降ります。

たとえば、

ズスタイル ':完了:*' URLは ~/.urls
mkdir -p ~/.urls/ftp/ftp.zsh.org/pub

URL のすべてのコンポーネントを完成させることができます ftp://ftp.zsh.org/pub After
`などの適切なコマンドネットスケープ'または `オオヤマネコ'。 ただし、アクセス方法に注意してください。
とファイルは別々に完成するので、 ホスト スタイルが設定されているホストは次のことができます
を参照せずに完了 URLは スタイル。

関数の説明を参照してください _urls 詳細については、それ自体 (例: `
$^fpath/_urls(N)')。

使用キャッシュ
これが設定されている場合、補完キャッシング レイヤーは補完に対してアクティブ化されます。
それを使用します( _ストア_キャッシュ, _retrieve_cache, _キャッシュ_無効 機能)。 の
キャッシュファイルを含むディレクトリは、 キャッシュパス スタイル。

使用-compctl
このスタイルが文字列に設定されている場合 に等しい false, 0, いいえ, OFF、完成
システムは、 コンパクト ビルトイン
指図。 スタイルが設定されていない場合、これは zsh / compctl モジュールは
読み込まれました。 文字列には部分文字列 ` も含まれる場合があります最初の' 補完を使用するには
`で定義コンパクト -T'、および部分文字列 `デフォルト' 補完を使用するには
`で定義コンパクト -D'.

これは、からの移行をスムーズにするためだけのものであることに注意してください コンパクト 新しい
完成系であり、今後無くなる可能性があります。

からの定義にも注意してください。 コンパクト ない場合にのみ使用されます。
問題のコマンドの特定の完了関数。 たとえば、
機能 _foo コマンドの引数を完成させる foo, コンパクト 決してなりません
のために呼び出された foo。 しかし、 コンパクト バージョンが試される場合 foo 使用のみ
デフォルトの完成。

使用 IP デフォルトでは、関数 _hosts から IP アドレスを削除してホスト名を完成させます。
NIS や ssh ファイルなどのホスト データベースから読み込まれたエントリ。 このスタイルなら
「true」、対応する IP アドレスも完成させることができます。 このスタイルはそうではありません
あらゆる文脈で使用する ホスト スタイルが設定されています。 また、前に設定する必要があることに注意してください
ホスト名のキャッシュが生成されます (通常、最初の完了試行)。

users これは、完了するユーザー名のリストに設定できます。 すべて設定されていない場合
ユーザー名が完成します。 ユーザーのリストのみが設定されている場合は、
完了する; これは、一部のシステムでは、すべてのユーザーにクエリを実行すると、
法外な時間。

ユーザーホスト
このスタイルの値は ` の形式である必要がありますuser@host'または `user:host'。 それは
ユーザー名とホスト名のペアが必要なコマンドに使用されます。 これらのコマンドは
このスタイルの完全なユーザー名 (のみ) であり、後続のホスト名を制限します
スタイルの値の XNUMX つでそのユーザーとペアになっているホストへの補完。

リモートログインを許可する一連のコマンドの値をグループ化することができます。
など ログイン   ssh使用することにより マイアカウント 鬼ごっこ。 同様に、セットの値
通常、他の人のアカウントを参照するコマンドの 話す  
を使用してグループ化できます。 他のアカウント 鬼ごっこ。 あいまいなコマンドの追加
使用する可能性があります アカウントの視聴者データを取得する タグ。

ユーザー-ホスト-ポート
いいね ユーザーホスト しかし、次のようなコマンドに使用されます telnet の文字列を含む
フォーム `user@host:ポート'.

詳細
設定すると、デフォルトのように、補完リストがより詳細になります。 特に
このスタイルが「true」の場合、多くのコマンドでオプションの説明が表示されます。

単語 これはによって使用されます _リスト コンプリータ、補完の挿入を防ぎます
行が変更されていない XNUMX 回目の完了試行まで。 通常のやり方
行が変更されているかどうかを調べるには、行の内容全体を比較します。
二回。 このスタイルが「true」の場合、代わりに比較のみが実行されます
現在の単語について。 したがって、補完が別の単語に対して実行された場合、
同じ内容で、完成が遅れることはありません。

CONTROL 関数


初期化スクリプト コンパイル 補完を実行するすべてのウィジェットを再定義します。
提供されたウィジェット関数を呼び出す _main_complete。 この関数はラッパー呼び出しとして機能します。
一致を生成するいわゆる「コンプリーター」関数。 もし _main_complete と呼ばれる
引数を指定すると、これらは、
与えられた命令。 引数が指定されていない場合、試行する関数のセットは
完了 スタイル。 たとえば、そうでない場合は通常の補完と修正を使用します。
一致するものを生成します。

ズスタイル ':完了:*' 完了 _完了 _正しい

電話した後 コンパイル。 このスタイルのデフォルト値は `_完了 _無視'、つまり
通常は通常の完了のみが試行され、最初に 無視されたパターン
スタイルとそれなし。 の _main_complete 関数は、の戻りステータスを使用します。
他のコンプリーターを呼び出す必要があるかどうかを決定するコンプリーター関数。 返品ステータスの場合
がゼロの場合、他のコンプリーターは試行されず、 _main_complete 関数が戻ります。

最初の引数が _main_complete 単一のハイフンの場合、引数は
完了者の名前として採用されます。 代わりに、XNUMX 番目の引数は、
完了 コンテキストのフィールドとその他の引数は、コマンド名と引数を指定します。
を呼び出して一致を生成します。

次のコンプリーター関数がディストリビューションに含まれていますが、ユーザーは
自分たちで書きます。 コンテキストでは、先頭のアンダースコアが削除されることに注意してください。たとえば、
基本的な補完はコンテキスト ` で実行されます。:完了::完了:...'.

_all_matches
このコンプリーターを使用して、他のすべての一致で構成される文字列を追加できます。 そのまま
後のコンプリータに影響を与えるため、リストの最初のコンプリータとして表示される必要があります。 の
すべての一致のリストは、 回避完了者   古いマッチ スタイル
上述した。

を使用すると便利な場合があります _ジェネリック バインドするための以下の関数 _all_matches
独自のキーストロークに、たとえば次のようにします。

ズレ -C 全試合 完全な単語 _ジェネリック
バインドキー '^ザ' 全試合
ズスタイル ':completion:all-matches:*' 古いマッチ
ズスタイル ':completion:all-matches::::' 完了 _all_matches

これ自体では補完が生成されないことに注意してください。最初に次のいずれかを使用します。
補完リストを生成する標準的な方法を使用する場合は、 ^Xa すべてを表示する
一致します。 代わりに、標準のコンプリーターをリストに追加することもできます。
すべての一致リストを直接挿入するようリクエストします。

ズスタイル ':completion:all-matches::::' 完了 \
_all_matches _完了
ズスタイル ':completion:all-matches:*' insert true

この場合、 古いマッチ スタイルを設定しないでください。

_近似
これは基本的なものと同じです _完了 コンプリータですが、コンプリーションを許可します
修正を受ける。 エラーの最大数は次のように指定できます。
最大エラー スタイル; の近似一致の説明を参照してください。 zshexpn(1)どのように
エラーはカウントされます。 通常、このコンプリーターは通常の実行後にのみ試行されます。
_完了 コンプリーター:

ズスタイル ':完了:*' 完了 _完了 _近似

これにより、正常に完了しても問題が発生しない場合にのみ、修正完了が得られます。
可能な完了。 修正された補完が見つかった場合、補完者は次のことを行います。
通常は、スタート メニューの補完により、これらの文字列を循環できるようになります。

このコンプリーターはタグを使用します 訂正   オリジナル 可能性のあるものを生成するとき
修正と元の文字列。 の 形式でアーカイブしたプロジェクトを保存します. 前者のスタイルには次のものが含まれる場合があります
追加のシーケンス `%e'と `%o' の数に置き換えられます
修正と元の文字列をそれぞれ生成するために受け入れられたエラー。

コンプリーターは、許容されるエラーの数を制限まで徐々に増やします。
を通じて、タンピングされたコーヒーベッドの上から均一にフィルターバスケットの内の粉に浸透していきます。 最大エラー したがって、完了に XNUMX つのエラーが見つかった場合は、
XNUMX つのエラーを伴う完了が表示されます。 コンプリーターを変更します
試行されたエラーの数を示すコンテキスト内の名前: 最初の試行時
コンプリータフィールドには ` が含まれています近似-1'、XNUMX 回目の試行時 '近似-2',
などがあります。

日時 _近似 別の関数から呼び出された場合、許容されるエラーの数
と一緒に渡すことができます -a オプション。 引数は、
最大エラー すべてを XNUMX つの文字列でまとめたスタイル。

このコンプリーター (および _正しい 完了者は後述します)
特に多数のエラーが許容される場合、呼び出しにコストがかかります。 一方通行
これを回避するには、 完了 を使用したスタイル -e zstyle のオプションなので
一部のコンプリーターは、完了が XNUMX 回目に試行された場合にのみ使用されます。
同じ文字列、例:

ズスタイル -e ':完了:*' 完了 '
if [[ $_last_try != "$HISTNO$バッファ$カーソル" ]]; その後
_last_try="$HISTNO$BUFFER$カーソル"
返信=(_complete _マッチ _プレフィックス)
ほかに
返信=(_無視されました _正しい _近似)
ふーん

これは ヒストノ パラメータと バッファ   カーソル 特別なパラメータ
zle および完了ウィジェット内で利用可能で、コマンド ラインが
最後に完了を試行してから変更されていません。 そのときのみ、
_無視, _正しい   _近似 完了者が呼びました。

_完了
このコンプリーターは、コンテキストに応じた方法ですべての可能な補完を生成します。
つまり、で定義された設定を使用します。 圧縮定義 上で説明した関数と
すべての特殊パラメータの現在の設定。 これで正常に完了します
動作。

コマンドの引数を完成させるには、 _完了 ユーティリティ関数を使用します _普通,
次に、特定の関数を見つける役割を果たします。 それは説明されています
下に。 フォームのさまざまなコンテキスト -コンテキスト- 特別に扱われます。 これらは
考えられる引数として上記で挙げたものはすべて、 #compdef タグ。

特定のコンテキストの関数を見つける前に、 _完了 かどうかをチェックします
パラメータ `コンプコンテキスト」が設定されています。 `の設定コンプコンテキスト' 通常の補完が可能になります
オーバーライドされるディスパッチは、を使用する関数などの場所で役立ちます。
変化した 入力用。 配列に設定されている場合、要素は
` タグを使用して完了する可能性のある一致'と説明
`'。 連想配列に設定されている場合、キーは可能なものとして使用されます。
補完と値 (空でない場合) は、一致の説明として使用されます。
`の場合コンプコンテキスト' はコロンを含む文字列に設定されており、次の形式である必要があります。
`タグ:説明:アクション'。 この場合、 タグ   説明 タグと説明を付けます
を使用し、 アクション 受け入れられたフォームのいずれかに記入する必要があるものを示します
を通じて、タンピングされたコーヒーベッドの上から均一にフィルターバスケットの内の粉に浸透していきます。 _引数 以下に説明するユーティリティ関数。

最後に、`コンプコンテキスト' がコロンのない文字列に設定されている場合、値は次のように取得されます。
使用するコンテキストの名前と、そのコンテキストに定義された関数は次のようになります。
と呼ばれた。 この目的のために、という名前の特別なコンテキストがあります。 -コマンドライン- それ
コマンドライン全体 (コマンドとその引数) を完了します。 これは使用されません
補完システム自体は、明示的に呼び出された場合に処理されます。

_正しい
現在の単語に対して訂正を生成しますが、補完は生成しません。 これは似ています
_近似 ただし、カーソルに余分な文字を含めることはできません。
コンプリーターがそうします。 この効果はスペルチェックに似ています。 に基づいています
_近似ただし、コンテキスト名のコンプリータフィールドは 正しい.

たとえば、次のようになります。

ズスタイル ':完了:::::' 完了 \
_完了 _正しい _近似
ズスタイル ':完了:*:正しい:::' 最大エラー 2 非数値
ズスタイル ':完了:*:概算:::' 最大エラー 3 数値の

修正は最大 XNUMX つのエラーを受け入れます。 数値引数が与えられた場合、
修正は行われませんが、修正完了は行われます。
数値引数で指定された数のエラーを受け入れます。 数字なしで
引数を指定すると、最初に修正が試行され、次に修正完了が試行されます。
最初のものは XNUMX つのエラーを受け入れ、XNUMX つ目は XNUMX つのエラーを受け入れます。

日時 _正しい 関数として呼び出される場合、受け入れるエラーの数が指定される場合があります
以下 -a オプション。 引数は、値と同じ形式です。 許可
すべてを XNUMX つの文字列でまとめたスタイル。

このコンプリーター関数は、 _近似 完了
または、例のように、その直前に。 の後にそれを使用する _近似 完了
役に立たないから _近似 少なくとも修正された文字列を生成します
によって生成された _正しい 完成者 -- そしておそらくそれ以上です。

_拡大する
このコンプリーター関数は実際には補完を実行しませんが、代わりに次のことをチェックします。
コマンドライン上の単語は展開の対象となり、展開の対象となる場合、次のようになります。
この拡張がどのように行われるかを詳細に制御します。 これが起こるためには、
完了システムは次のように呼び出す必要があります 完全な単語はなく、 展開または完了
(デフォルトのバインディング TAB)、それ以外の場合、文字列は
補完システムが開始される前のシェルの内部メカニズム。 これにも注意してください
コンプリーターは、 _完了 コンプリーター機能。

拡張を生成するときに使用されるタグは次のとおりです。 全展開 文字列用
考えられるすべての拡張を含み、 拡張 可能な拡張を追加するとき
シングルマッチとして オリジナル 行から元の文字列を追加するとき。 の
これらの文字列が生成される順序は、ある場合には、
グループオーダー   タグ順 いつものようにスタイル。

のフォーマット文字列 全展開 とのために 拡張 シーケンスが含まれる場合があります
`%o' これは、その行の元の文字列に置き換えられます。

試行する拡張の種類は、 代替, 地球  
サブグロブのみ スタイル

電話することも可能です _拡大する 関数として、その場合は異なります
モードはオプションで選択できます。 -s代替, -g地球   -o
サブグロブのみ.

_expand_alias
カーソルが置かれている単語がエイリアスの場合、その単語は展開され、他のコンプリーターは展開されません
と呼ばれます。 展開されるエイリアスの種類は次のように制御できます。
スタイル レギュラー, 全体的な   無効.

この関数はバインド可能なコマンドでもあります。セクション「バインド可能なコマンド」を参照してください。
を参照してください。

_extensions
カーソルが文字列 ` の後にある場合*.'、ファイル名の拡張子が完成しました。 の
拡張子は、現在のディレクトリまたはで指定されたディレクトリ内のファイルから取得されます。
現在の単語の始まり。 完全一致の場合、補完により引き続き許可されます
他のコンプリーターなど _拡大する パターンを拡張します。 標準 スペースを追加  
プレフィックス非表示 スタイルが観察されます。

_歴史
シェルのコマンド履歴から単語を完成させます。 このコンプリーターは制御可能です
を通じて、タンピングされたコーヒーベッドの上から均一にフィルターバスケットの内の粉に浸透していきます。 すべての重複を削除, sort スタイルに関しては _history_complete_word バインド可能な
コマンドについては、以下の「バインド可能なコマンド」セクションと「完了」セクションを参照してください。
システム構成」を参照してください。

_無視
当学校区の 無視されたパターン style には比較されるパターンのリストを設定できます
可能な完了に対して。 一致するものは削除されます。 このコンプリーターを使用すると、
一致しない場合と同様に、一致を復元できます。 無視されたパターン スタイルが設定されました。 完成者
実際には独自の一致リストを生成します。 どのコンプリーターが呼び出されるかは、
と同じ方法で決定されます。 _prefix 完成者。 の 単一無視
も上記のように利用できます。

_リスト このコンプリーターを使用すると、完了が完了するまで一致の挿入を遅らせることができます。
行上の単語を変更せずに XNUMX 回目の試行を試みました。 初めて
試行すると、一致したリストのみが表示されます。 スタイルに影響される
条件   単語、上記の「完了システム構成」セクションを参照してください。

_マッチ このコンプリーターは、 _完了 完成者。 それは動作します
同様ですが、コマンドラインの文字列が照合対象のパターンになる場合があります。
トライアルの完了。 これにより、次のような効果が得られます。 GLOB_COMPLETE オプションを選択します。

通常は行からパターンを取り出して完成させますが、
`を挿入する*' をカーソル位置で実行し、結果のパターンを
可能な補完が生成されました。 これは次のように変更できます。 マッチオリジナル
上述した。

生成された一致は、
明確な挿入 スタイルは「true」に設定されます。 その他については上記の説明を参照してください
このスタイルのオプション。

マッチャーの仕様はグローバルに定義されているか、補完によって使用されることに注意してください。
関数 (スタイル マッチャーリスト   マッチャー)は使用されません。

_メニュー このコンプリーターは、メニューの補完方法を示す簡単なサンプル関数として作成されました。
シェルコードで有効にできます。 ただし、メニューを無効にするという顕著な効果があります。
役に立つ選択 _ジェネリック ベースのウィジェット。 として使用する必要があります。
リストの最初の完了者。 これは、
メニュー_完了 オプションであり、他のメニュー完了ウィジェットとは機能しません。
as リバースメニュー-完了または 受け入れてメニューを完成させる.

_oldlist
このコンプリーターは、
特別な補完によって生成された可能性のある補完の既存のリスト
(つまり、個別にバインドされた完了コマンド)。 通常の完了が可能になります
キーを使用すると、生成された補完リストの代わりに使用し続けることができます。
通常のコンテキスト補完の新しいリストを生成します。 に表示されるはずです。
一致を生成するウィジェットの前にあるコンプリーターのリスト。 XNUMXつ使用します
スタイル: 古いリスト   古いメニュー、セクション「完了システム構成」を参照してください。
上記。

_prefix
このコンプリーターを使用すると、サフィックス (
カーソル)は無視されます。 言い換えれば、サフィックスは の一部とはみなされません。
完了するという言葉。 効果は次のとおりです。 エキスパンドまたはコンプリートプレフィックス


当学校区の 完了 スタイルは、他のどのコンプリーターを呼び出すかを決定するために使用されます。
一致を生成します。 このスタイルが設定されていない場合、コンプリータのリストは
現在のコンテキストが使用されます -- もちろん、 _prefix コンプリーターそのもの。
さらに、このコンプリーターがコンプリーターのリストに複数回表示される場合は、
最後の呼び出しでまだ試行されていないコンプリーターのみ _prefix なります
と呼ばれます。

たとえば、これをグローバルに考えてみましょう。 完了 スタイル:

ズスタイル ':完了:*' 完了 \
_完了 _prefix _正しい _prefix:foo

ここで、 _prefix completer は通常の補完を試みますが、サフィックスは無視されます。 もし
これは一致を生成せず、への呼び出しも生成しません。 _正しい
その後の完成者、 _prefix 二度目に呼び出されますが、今は試行するだけです
サフィックスによる修正は無視されます。 XNUMX 回目の呼び出しでは、コンプリータ部分が
コンテキストは ` として表示されますfoo'.

使用するには _prefix 最後の手段として、通常の完了のみを試してください。
呼び出された:

ズスタイル ':完了:*' 完了 _完了 ... _prefix
ズスタイル ':完了::プレフィックス:*' 完了 _完了

当学校区の スペースを追加 スタイルも尊重されます。 「true」に設定されている場合は、 _prefix 意志
生成された一致 (存在する場合) と接尾辞の間にスペースを挿入します。

このコンプリーターは、次の場合にのみ役立つことに注意してください。 COMPLETE_IN_WORD オプションが設定されています。
それ以外の場合、カーソルは現在の単語の末尾の前に移動します。
完了コードが呼び出されるため、サフィックスはありません。

_user_expand
このコンプリーターは、 _拡大する 完了者ですが、代わりに実行します
ユーザーが定義した拡張。 スタイル スペースを追加   sort 特有のスタイル
_拡大する コンプリーターは以下で使用できます _user_expand 他のスタイルに加えて
より一般的には完了システムによって行われます。 タグ 全展開 もご利用いただけます。

展開は配列のスタイルに依存します ユーザー拡張 現在のために定義されている
コンテクスト; コンプリーターのコンテキストは、コンプリーターのコンテキストよりも具体的ではないことに注意してください。
完全なコンテキストがまだ決定されていないため、コンテキスト補完が必要になります。 の要素
配列は次のいずれかの形式になります。
$ハッシュ

ハッシュ 連想配列の名前です。 これは完全なパラメータではないことに注意してください
表現、単なる $、直ちに拡大を防ぐために適切に引用されています。
連想配列の名前が続きます。 お試し展開ワードなら
のキーに一致します ハッシュ、結果の展開は対応する値になります。
_ファンク

_ファンク シェル関数の名前です。名前は次で始まる必要があります。 _ しかし
それ以外は補完システムにとって特別なことではありません。 関数は次のように呼び出されます
引数としてのトライアルワード。 単語を展開する場合、関数
配列を設定する必要があります 返信 拡張リストへ。 オプションで設定できます
応答 セットの説明として使用される単語に
拡張。 関数の戻りステータスは関係ありません。

結合可能 コマンド


提供されているコンテキスト依存の補完に加えて、
直感的に明らかな方法ですが、特別な動作を実装するウィジェットがいくつかあります。
キーに個別にバインドできます。 以下はこれらとそのデフォルトのリストです。
バインディング。

_bash_completions
この関数は XNUMX つのウィジェットで使用されます。 _bash_complete-word   _bash_list-choices.
これは、bash の補完バインディングとの互換性を提供するために存在します。 最後
バインディングの文字によって、何が完了するかが決まります: `!'、コマンド名。 `$',
環境変数; `@'、ホスト名。 `/'、ファイル名; `~' ユーザー名。 バッシュでは、
` で始まるバインディング\e' は補完を示し、その前に ` が続きます^X' はオプションをリストします。
これらのバインディングの一部は標準の zsh バインディングと衝突するため、`\e~'と `^X~'
はデフォルトでバインドされています。 残りを追加するには、以下を追加する必要があります .zshrc
After コンパイル 実行されました:

キー in 「!」 '$' 「@」 「/」 '~'; do
バインドキー 「\e$キー」 _bash_complete-word
バインドキー 「^X$キー」 _bash_list-choices
行われ

これには ` のバインディングが含まれます~' 彼らがすでに何かに縛られている場合に備えて
それ以外; 完了コードはユーザー バインディングをオーバーライドしません。

_正しい_ファイル名 (^XC)
カーソル位置のファイル名パスを修正します。 最大 XNUMX つのエラーが許容されます。
名前。 ファイル名のパスを修正するために引数を指定して呼び出すこともできます。
zleとは独立して。 修正内容は標準出力に出力されます。

_正しい_単語 (^Xc)
通常のコンテキスト補完を使用して現在の引数の修正を実行します
可能な選択肢として。 これは文字列 ` を保存します正しい言葉' の中に function の分野
コンテキスト名を指定して、 _正しい コンプリート。

_expand_alias (^Xa)
この関数は、コンプリーターとして、またバインド可能なコマンドとして使用できます。 それは、
カーソルが置かれている単語がエイリアスの場合。 展開できるエイリアスの種類は、
スタイルで制御する レギュラー, 全体的な   無効.

バインド可能なコマンドとして使用する場合、追加機能が XNUMX つあります。
の設定によって選択されます コンプリート スタイルを「true」に設定します。 この場合、単語がそうでない場合は、
エイリアスの名前、 _expand_alias 単語を完全なエイリアス名に完成させようとします
拡張せずに。 完成した単語の直後にカーソルが残るので、
それを呼び出す _expand_alias もう一度、完成したエイリアス名を展開します。

_expand_word (^Xe)
現在の単語に対して展開を実行します: 標準と同等 単語を展開する
コマンドを使用しますが、 _拡大する 完成者。 電話をかける前に、 function の分野
コンテキストは ` に設定されます単語を展開する'.

_ジェネリック
この関数はウィジェットとして定義されておらず、デフォルトではバインドされていません。 ただし、それは可能です
ウィジェットを定義するために使用され、ウィジェットの名前が
function コンテキストのフィールドを指定して完了システムを呼び出します。 これによりカスタムが可能になります
独自のスタイル設定セットを簡単に定義できる補完ウィジェット。 のために
たとえば、通常の完了を実行してメニューを開始するウィジェットを定義するには
選択:

ズレ -C foo 完全な単語 _ジェネリック
バインドキー 「...」 foo
ズスタイル ':completion:foo:*' メニュー はい select = 1

特に注意してください。 完了 スタイルは、次の目的でコンテキストに設定できます。
一致する可能性のあるものを生成するために使用される関数のセットを変更します。 もし _ジェネリック is
引数を指定して呼び出されると、それらは渡されます。 _main_complete のリストとして
によって定義されたコンプリータの代わりに、 完了 スタイル。

_history_complete_word (\e/)
シェルのコマンド履歴から単語を完成させます。 これは、 リスト,
すべての重複を削除, sort, stop スタイル

_最近の_ファイル (^Xm)
のパターンと一致する、最後に変更されたファイルの名前を入力します。
コマンドライン (空白の場合もあります)。 数値引数が与えられた場合 N、 完了 Nth
最近変更されたファイル。 補完がある場合、それは常に一意であることに注意してください。

_next_tags (^Xn)
このコマンドは、使用される一致のセットを次のタグの一致のセット、または一致のセットに変更します。
タグ、 タグ順 スタイルまたはデフォルトの設定どおり。 これらの試合
それ以外の場合は利用できません。 コマンドサイクルの連続呼び出し
考えられるすべてのタグのセットを介して。

_read_comp (^X^R)
ユーザーに文字列の入力を求め、それを使用して現在の文字列に対して補完を実行します。
言葉。 文字列には XNUMX つの可能性があります。 まず、単語のセットである可能性があります
始まり `_'、たとえば '_files -/'、この場合、任意の関数
補完を生成するために引数が呼び出されます。 の明確な部分
関数名は自動的に補完されます (通常の補完は利用できません)
この時点で)、スペースが入力されるまで。

次に、他の文字列は引数のセットとして渡されます。 コンパッド そして、すべきです
したがって、何を完了する必要があるかを指定する式になります。

文字列を読み取るときに、非常に制限された一連の編集コマンドを使用できます。
`THE'と `^H' 最後の文字を削除します。 `^U' は行を削除し、 `^C'と `^G'
関数を中止する一方で、`RET' は完了を受け入れます。 文字列が使用されていることに注意してください
コマンドラインとして逐語的に記述されるため、引数は標準に従って引用符で囲む必要があります
シェルのルール。

文字列が読み取られると、次の呼び出しは _read_comp 既存のものを使用します
新しい文字列を読み取る代わりに文字列を読み込みます。 新しい文字列を強制的に読み取らせるには、次のように呼び出します。
_read_comp 数値引数を使用します。

_complete_debug (^X?)
このウィジェットは通常の完了を実行しますが、一時ファイルにトレースをキャプチャします。
補完システムによって実行されるシェル コマンド。 それぞれの完了試行
独自のファイルを取得します。 これらの各ファイルを表示するコマンドがエディターにプッシュされます。
バッファスタック。

_complete_help (^Xh)
このウィジェットには、コンテキスト名、タグ、および
現在のカーソル位置で完了するときに使用される完了関数。 与えられた場合
以外の数値引数 1 (`のようにESC-2 ^Xh')、次に使用されるスタイルと
それらが使用されるコンテキストも表示されます。

スタイルに関する情報は不完全である可能性があることに注意してください。 それはによって異なります
呼び出された補完関数から取得できる情報。
ユーザー自身のスタイルやその他の設定によって決まります。

_complete_help_generic
ここにリストされている他のコマンドとは異なり、これは通常の ZLE ウィジェットとして作成する必要があります
完了ウィジェットではなく (つまり、 ズレ -N)。 ヘルプを生成するために使用されます
にバインドされたウィジェットを使用して、 _ジェネリック 上で説明したウィジェット。

このウィジェットがデフォルトのように関数名を使用して作成された場合、
実行するとキーシーケンスが読み取られます。 これは呼び出しにバインドされることが期待されます
を使用する補完関数に、 _ジェネリック ウィジェット。 そのウィジェットは
実行され、情報は、 _complete_help
コンテキスト補完用のウィジェットが表示されます。

ウィジェットの名前に次のものが含まれている場合、 debugたとえば、 ` として作成された場合ズレ -N
_complete_debug_generic _complete_help_generic' を読み取って実行します。
以前と同様に汎用ウィジェットのキー文字列を使用しますが、デバッグ情報を生成します
によって行われたように _complete_debug コンテキスト補完用。

ウィジェットの名前に次のものが含まれている場合、 ノリード、キー文字列は読み取られませんが、代わりに
同じシェルで実行される汎用ウィジェットの次回の使用時に、
効果は上で説明したとおりです。

ウィジェットはシェルパラメータを設定することで機能します ZSH_TRACE_GENERIC_WIDGET どちらである
によって読む _ジェネリック。 パラメータの設定を解除すると、保留中の効果がキャンセルされます。 ノリード
フォーム。

たとえば、次を実行した後:

ズレ -N _complete_debug_generic _complete_help_generic
バインドキー '^x:' _complete_debug_generic

「`」と入力していますCx :' 汎用ウィジェットのキー シーケンスが続くとトレースが発生します
そのウィジェットの出力をファイルに保存します。

_complete_tag (^Xt)
このウィジェットは、 イータグ or クタグス プログラム(注)
補完システムのタグとは関係がありません) ファイルに保存されます タグ
で使用される形式 イータグまたは タグ、によって作成された形式で クタグス。 それは見えるでしょう
いずれかのファイルが最初に出現するパス階層をバックアップします。 両方が存在する場合、
ファイル タグ が好ましいです。 へのフルパスを指定できます。 タグ or タグ file
パラメータを設定することで $TAGSFILE or $tagsfile それぞれ。 対応します
使用される完了タグは イータグ   vtag、それぞれ emacs と vi の後。

UTILITY 関数


以下に、補完を書き込むときに役立つユーティリティ関数について説明します。
機能。 関数がサブディレクトリにインストールされている場合、それらのほとんどは ベース(Base)
サブディレクトリ。 ディストリビューション内のコマンドのサンプル関数と同様に、ユーティリティ
一致を生成する関数はすべて、一致する場合にステータス XNUMX を返す規則に従います。
生成された補完、および一致する補完を追加できなかった場合は XNUMX 以外の値。

さらに XNUMX つの機能が提供されます。 _main_complete 関数。 配列 補完機能  
コンポスト関数 直前に呼び出される関数の名前が含まれる場合があります。
完成後は試してみました。 明示的に呼び出されない限り、関数は XNUMX 回だけ呼び出されます。
自分自身を配列に再挿入します。

_all_labels [ -x ] [ -12VJ ] タグ 説明 [ command argは ...]
これは、 _next_label 以下の関数を実装します。
に示すループ _next_label 例。 の command そしてその引数は次のように呼び出されます
一致を生成します。 パラメータに保存されているオプション 自動的に意志
に挿入される argはに渡されました command。 通常は直接入れます
後に command、しかし、次のいずれかの場合、 argはs は単一のハイフンです。挿入されます
その直前に。 ハイフンが最後の引数の場合は、ハイフンが削除されます。
の前の引数リスト command と呼ばれます。 これにより、 _all_labels 使用する
ほとんどすべての場合、一致は への XNUMX 回の呼び出しによって生成できます。
コンパッド 組み込みコマンド、またはいずれかのユーティリティ関数の呼び出しによって。

具体的な例を挙げますと、以下の通りです。

ローカル エキスパート
...
if _リクエスト済み ふー; その後
...
_all_labels foo エキスパート 「...」 コンパッド ... - $matches
fi

からの文字列を完成させます マッチ パラメータ、使用 コンパッド 追加で
によって生成されたオプションよりも優先されるオプション _all_labels.

_代替 [ -O ] [ -C ] スペック ...
この関数は、複数のタグが使用できる単純な場合に役立ちます。
基本的に、これは、で説明したようなループを実装します。 _タグ function
を参照してください。

使用するタグと、タグが要求された場合に実行するアクションは、次のように記述されます。
  スペックs の形式は `タグ:説明:アクション'。 の タグを使用して提供されます
_タグ タグがリクエストされた場合、 アクション 指定された条件で実行されます
説明 説明を選択します。 アクションは、によって受け入れられたものです。 _引数 function
(後述)、` を除く->状態'と `=...」という形になります。

例えば、 アクション 単純な関数呼び出しかもしれません:

_代替 \
'ユーザー:ユーザー:_ユーザー' \
'ホスト:ホスト:_hosts'

によって生成された、一致する可能性のあるユーザー名とホスト名を提供します。 _users  
_hosts それぞれ機能します。

いいね _引数、この関数は使用します _all_labels アクションを実行すると、
すべてのタグのセットをループします。 特別な処理が必要になるのは、次のような問題がある場合のみです。
追加の有効なタグ(たとえば、から呼び出される関数内) _代替.

オプション`-O ' と同じように使用されます。 _引数 関数。 の
言い換えれば、の要素 配列が渡されます コンパッド を特定いたします。
アクションを実行しています。

いいね _タグ この機能は、 -C に別の名前を付けるオプション
引数コンテキストフィールド。

_引数 [ -nswWCRS ] [ -A パット ] [ -O ] [ -M マッチスペック ]
[ : ] スペック ...
_引数 [ オプト ...] -- [ -i パット ] [ -s ペア ] [ ヘルプスペック ...]
この関数を使用して、オブジェクトの完了に関する完全な仕様を指定できます。
引数が標準の UNIX オプションと引数の規則に従うコマンド。

オプション 概要

オプション _引数 それ自体は別の単語でなければなりません。つまり、 -s -wはなく、 -swを選択します。
オプションの後には スペック分析されたもののオプションと引数を説明する
スペックオプションフラグを記述する は前に置く必要があります スペック説明する
分析された行の非オプション (「位置」または「通常」) 引数。 避けるために
曖昧さ、すべてのオプション _引数 それ自体は、 スペック によるフォーム
単一のコロン。

`--' 形式は直観的に使用されます スペック コマンドのヘルプ出力からのフォーム
分析されており、以下で詳しく説明します。 の optsの `のために--' フォームは
それ以外の場合は、最初の形式と同じオプションです。 ` に注意してください-s' に続く '--' があります
`とは異なる意味-s' の前の `--」と両方が表示される場合があります。

オプションスイッチは -s, -S, -A, -w, -W 方法に影響を与える _引数 を解析します
コマンドラインのオプションを分析しました。 これらのスイッチは、次のコマンドに役立ちます。
標準的な引数の解析。

のオプション _引数 次の意味があります。

-n このオプションを使用すると、 _引数 パラメータを設定します ノーマーグ の位置に
の最初の正規引数 $words 配列、つまり、
オプションの終わり。 その議論に到達していない場合は、 ノーマーグ 設定されている
〜へ -1。 呼び出し側は ` を宣言する必要があります整数 ノーマーグ'の場合 -n オプションがある
合格した; それ以外の場合、パラメータは使用されません。

-s 有効にする オプション スタッキング 単一文字のオプションの場合、複数の
XNUMX 文字のオプションを XNUMX つの単語に組み合わせることができます。 たとえば、
XNUMXつのオプション `-x'と `-y' は XNUMX つの単語に結合できます `-xy'。 による
デフォルトでは、すべての単語が XNUMX つのオプション名に対応します (`-xy』はシングルです
` という名前のオプションxy')。

単一のハイフンまたはプラス記号で始まるオプションは、
スタッキング; XNUMX つのハイフンで始まる単語はそうではありません。

注意してください -s After -- には別の意味があり、それについては、
「導出」というタイトルのセグメント スペック ヘルプ出力からのフォーム」。

-w と組み合わせて -s、XNUMX つ以上のオプションが存在する場合でも、オプションのスタックを許可します。
オプションは引数を取ります。 たとえば、次の場合 -x 引数なしで引数を受け取ります -s,
`-xy' は単一の (未処理の) オプションとみなされます。 と -s, -xy あります
引数 ` を持つオプションy'; 両方と -s   -w, -xy オプションかもしれない -x
そしてオプション -y 議論はまだこれからだ。

-W このオプションでは、 -w さらなるステージ: 完了することが可能です
同じ単語内に出現する引数の後にも XNUMX 文字のオプションを含めることができます。
ただし、オプションが実際に有効になるかどうかは、実行されるアクションによって異なります。
この時点で完了しました。 さらに制御するには、次のようなユーティリティ関数を使用します。
_ガード アクションの一環として。

-C 修正します 現在のコンテキスト ` 形式のアクションのパラメータ->状態'。 これ
以下で詳しく説明します。

-R 次の場合、ゼロではなくステータス 300 を返します。 $ state で処理されます。
`->string'構文。

-S ` の後にオプションを入力しないでください--' というメッセージが行に表示されますが、無視してください。
`--'。 たとえば、 -S、行内

foob​​ar -x -- -y

`-x' はオプションとみなされます。-y' は引数とみなされ、
`--」はどちらでもないと考えられます。

-A パット その行の最初の非オプション引数の後にオプションを完成させないでください。
パット とみなされないすべての文字列に一致するパターンです。
引数。 たとえば、 _引数 以降はオプションの入力を停止します
最初の通常の引数ですが、ハイフンで始まるすべての文字列は無視されます
たとえそれらが次のいずれかで説明されていない場合でも、 オプトスペックs、形式は `-A
「-*」'.

-O
配列の要素を渡します 呼び出される関数の引数として
実行します アクションs. これについては以下で詳しく説明します。

-M マッチスペック
一致仕様を使用する マッチスペック オプション名を完成させるためと、
値。 デフォルト マッチスペック ` の後の部分的な単語補完を許可します_'と
`-' (` の補完など)-fb' から '-フーバー'。 デフォルト マッチスペック 次のとおりです。
r:|[_-]=* r:|=*

仕様: 概要

次の各形式は、 スペック オプションの個々のセットを説明するか、
分析中のコマンドラインの引数。

n:メッセージ:アクション
n::メッセージ:アクション
これは、 n'番目の通常の引数。 の メッセージ 上に印刷されます
生成された一致と アクション これで完了できる内容を示します
位置(以下を参照)。 の前にコロンが XNUMX つある場合、 メッセージ  
引数はオプションです。 もし メッセージ 空白のみが含まれており、何も含まれていません
アクションによって説明が追加されない限り、一致の上に印刷されます
文字列自体。

:メッセージ:アクション
::メッセージ:アクション
似ていますが、次のことを説明します。 次の 引数、どのような数値が発生しても
なれ。 この形式ですべての引数が正しい順序で指定されている場合、
数字は不要です。

*:メッセージ:アクション
*::メッセージ:アクション
*:::メッセージ:アクション
これは、引数 (通常はオプションではない引数、そうでない引数) がどのように処理されるかを説明します。
ではじまる - or +) 最初の XNUMX つのいずれでもない場合に完了します。
フォームが提供されました。 これには任意の数の引数を入力できます
ファッション。

の前にコロンを XNUMX つ付けると、 メッセージ 言葉 特別な配列と 現在
特殊パラメータは、次の場合に通常の引数のみを参照するように変更されます。
  アクション 実行または評価されます。 の前にコロンが XNUMX つある メッセージ
それらは、この対象となる通常の引数のみを参照するように変更されます。
説明。

オプトスペック
オプトスペック:...
これはオプションについて説明します。 コロンは XNUMX つ以上の処理を示します
オプションの引数。 存在しない場合は、オプションが取られるものとみなされます
引数はありません。

初回は以下のフォームをご利用いただけます オプトスペックかどうか
オプションには引数があります。

*オプトスペック
ここに オプトスペック 以下の残りの形式の XNUMX つです。 これは、
フォロー中 オプトスペック 繰り返される可能性があります。 それ以外の場合、対応する
オプションは、コマンドラインの左側にすでに存在します。
カーソルは再び提供されません。

-オプトネーム
+オプトネーム
最も単純な形式では、 オプトスペック はオプション名の先頭にすぎません
` などのマイナスまたはプラス記号付き-ふー'。 の最初の引数
オプション (ある場合) は、 の直後の単語
オプションを選択します。

`のいずれか-+オプトネーム'と `+-オプトネーム' を使用して指定できます
-オプトネーム   +オプトネーム どちらも有効です。

残りのすべての形式では、先頭の `-' は、またはで置き換えることができます
`と組み合わせる+' このようにして。

-オプトネーム-
オプションの最初の引数はオプションの直後に指定する必要があります
in   同じ 単語。 たとえば、「-ふー-:...' は、
完成したオプションと引数は ` のようになります-ふーargは'.

-オプトネーム+
最初の引数は直後に現れる場合があります オプトネーム 同じ内
単語、またはオプションの後に別の単語として表示される場合もあります。 のために
たとえば、「-foo+:...' は、完成したオプションと引数を指定します
どちらかのように見えます `-ふーargは'または `-ふー argは'.

-オプトネーム=
引数は次の単語として現れることも、引数と同じ単語内に現れることもあります。
オプション名が等号で区切られている場合、
たとえば、-foo=argは'または `-ふー argは'.

-オプトネーム=-
オプションの引数は、等号の後に指定する必要があります。
同じ単語なので、次の引数に指定することはできません。

オプトスペック[説明]
説明文字列は、前述のフォームのいずれかに追加できます。
of オプトスペック ` のように括弧で囲みます。-q[クエリ 手術]'.

当学校区の 詳細 style は、説明文字列かどうかを決定するために使用されます。
は、補完リストのオプションとともに表示されます。

括弧で囲まれた説明文字列が指定されていない場合、 自動説明
スタイルが設定されており、この引数は XNUMX つだけ記述されています オプトスペック
スタイルの値が、シーケンスの任意の外観とともに表示されます。
`%d' の部分は、 メッセージ 第一の オプターグ 次の
  オプトスペック; 下記参照。

リテラル ` を使用したオプションが可能です+'または `=』と出てきますが、それは
文字は引用符で囲む必要があります (例: `)-\+'.

オプターグ 次の オプトスペック 次のいずれかの形式をとる必要があります。

:メッセージ:アクション
::メッセージ:アクション
オプションの引数。 メッセージ   アクション として扱われます
普通の議論。 最初の形式では、引数は必須です。
XNUMX 番目の形式ではオプションです。

このグループは、複数の引数を取るオプションに対して繰り返される場合があります。
言い換えれば、 :message1:action1:message2:action2 は、
オプションには XNUMX つの引数を取ります。

:*パターン:メッセージ:アクション
:*パターン::メッセージ:アクション
:*パターン:::メッセージ:アクション
これは複数の引数を記述します。 最後だけ オプターグ のために
複数の引数を取るオプションは、この形式で指定できます。 もし
パターン は空です(つまり、 :*:)、その行の残りの単語はすべて
の説明に従って完了すること アクション; それ以外の場合は、すべての単語が
に一致する単語まで パターン 完了する予定です
アクション.

複数のコロンは ` と同じように扱われます。*:...' 通常のフォーム
引数: メッセージ XNUMX つのコロンが前にある場合、 言葉
特別な配列と 現在 特別なパラメータは途中で変更されます
の実行または評価 アクション 単語だけを参照する
オプション後。 コロンが XNUMX つ前にある場合、それらは変更されます
この説明で取り上げる用語のみを参照してください。

内の任意のリテラルコロン オプトネーム, メッセージまたは アクション の前に
バックスラッシュ、`\:'.

上記の各形式の前に、オプション名の括弧内のリストが続く場合があります。
そして引数の番号。 指定されたオプションがコマンドラインにある場合、オプションと
括弧内に示された引数は提供されません。 たとえば、「(-二 -三つ
1)-XNUMX:...' オプションを完了します `-1'; これがコマンドラインに表示された場合、
オプション -二   -三つ 最初の通常の引数はその後完了しません。
それ。 `(-foo):...' 通常の引数補完を指定します。 -ふー ではありません
その引数がすでに存在する場合は完了します。

他のさまざまな項目を示すために、除外オプションのリストに他の項目が表示される場合があります。
現在の仕様が一致する場合に適用すべきではない項目:
単一の星 (*) 残りの引数 (つまり、` 形式の仕様)*:...');
コロン (:) すべての通常の (オプション以外の) 引数の場合。 とハイフン (-) すべてのために
オプション。 たとえば、「(*)' がオプションの前に表示され、オプションが上に表示されます。
コマンドライン、残りの引数のリスト(上の表に示されている引数)
`で始まる*:') は完了しません。

仕様の再利用を助けるために、上記の形式のいずれかの前に置くことができます。
`で!'; オプションまたは
引数がコマンド ラインに指定された場合、通常どおりスキップされます。 主な用途
これは引数が配列で与えられる場合であり、 _引数 と呼ばれる
より具体的なコンテキストに対して繰り返し: 最初の呼び出し時 `_引数
$global_options' が使用され、その後の呼び出しでは `_引数 !$^global_options'.

仕様: 行動

上記の各フォームでは、 アクション 補完のあり方を決定する
生成された。 `を除く->string' 以下のフォームでは、 アクション によって実行されます
を呼び出す _all_labels すべてのタグラベルを処理する関数。 特別な取り扱いはありません
関数呼び出しで新しいタグが導入されない限り、タグは必要です。

実行するために呼び出される関数 アクションs は、の要素を使用して呼び出されます。
` で指定された配列-O ' オプションを引数として指定します。 これは、たとえば次のように使用できます。
同じオプションのセットを渡すには、 コンパッド すべてに組み込まれている アクションs.

のフォーム アクション 以下の通り。

(引用符で囲まれていない単一のスペース)
これは、引数が必要だがそれが不可能な場合、または引数が必要な場合に便利です。
それに一致するものを生成することが望ましい。 の メッセージ が表示されますが、表示されません
完成品がリストされています。 この場合でも、末尾のコロンは
メッセージ 必要です。 どちらでもない場合にのみ省略できます。 メッセージ でもない
アクション 与えられます。

(item1 item2 ...)
一致する可能性のあるリストの XNUMX つ。例:

:foo:(foo バー バズ)

((item1\:説明1 ...))
上記と似ていますが、考えられる一致ごとに説明が付いています。 注記
コロンの前のバックスラッシュ。 例えば、

:foo:((a\:bar b\:バズ))

一致するものは、その説明とともにリストされます。
説明 スタイルは コンテキスト内のタグ。

->string
この形では、 _引数 引数とオプションを処理してから、
を示すように設定されたパラメータを使用して、呼び出し元の関数に制御を返します。
処理の状態。 その後、呼び出し側関数が独自の調整を行います。
補完を生成するため。 たとえば、状態を実装する関数
マシンはこのタイプのアクションを使用できます。

場所 _引数 出会い アクション `で->string' 形式の場合は削除されます
先頭と末尾のすべての空白 string そして配列を設定します 状態 〜へ
全部のセット stringアクションが実行される対象。 要素
配列の 状態説明 対応するものが割り当てられます メッセージ フィールドはから
オプターグ そのようなものを含む アクション.

デフォルトでは、他のすべての適切に動作する補完関数と同様に、
_arguments は、一致およびゼロ以外を追加できた場合、ステータス XNUMX を返します。
さもないと。 ただし、 -R オプションが与えられ、 _引数 代わりに
それを示すためにステータス 300 を返します。 $ state 扱われることになる。

に加えて $ state   $state_descr, _引数 グローバルも設定します
パラメータ `コンテキスト'、 `ライン'と `opt_args' 以下で説明するように、
特別なパラメータに加えられた変更をリセットします。 プレフィックス   言葉.
これにより、呼び出し関数にこれらのパラメータをリセットするか、またはリセットするかの選択肢が与えられます。
それらの変化を伝播させます。

関数呼び出し _引数 を含むアクションを少なくとも XNUMX つ含む
`->string' したがって、適切なローカル パラメータを宣言する必要があります。

ローカル コンテキスト 状態 状態説明 ライン
タイプセット -A opt_args

防ぐために _引数 地球環境を変えることから。

{評価文字列}
中かっこで囲まれた文字列はシェル コードとして評価され、一致を生成します。 もし
評価文字列 それ自体が開き括弧または中括弧で始まっていません。
実行前に別々の単語に分割します。

= アクション
Status アクション `で始まる= ' (等号の後にスペース)、
_引数 の内容を挿入します 引数 現在のフィールド
context を新しい最初の要素として使用します。 言葉 特別な配列と増分
の値 現在 特別なパラメータ。 これには次のような効果があります。
変更せずに完了コマンドラインにダミーワードを挿入する
完了が行われる時点。

これは、単語を制限する指定子の XNUMX つを使用すると最も便利です。
コマンドライン アクション 操作することです (XNUMX つおよび XNUMX つのコロン)
上記のフォーム)。 特定の用途の XNUMX つは、 アクション それ自体が原因となる _引数
限られた範囲で。 を挿入するにはこのトリックを使用する必要があります。
適切なコマンド名を XNUMX 番目の呼び出しの範囲に追加します。 _引数 〜へ
行を解析できるようになります。

言葉...
言葉...
上記以外のすべての形式が対象となります。 もし アクション で始まる
スペースを指定すると、残りの単語リストが変更されずに呼び出されます。

それ以外の場合は、最初の文字列の後に追加の文字列が配置されて呼び出されます。
言葉; これらはオプションとして コンパッド 内蔵。 彼らは
で指定された状態を確保する _引数、特に
オプションと引数の説明が補完に正しく渡されます。
指示。 これらの追加の引数は配列パラメータから取得されます。
`エキスパート'; これは実行前に設定されます。 アクション したがって、そうかもしれません
その内部で参照され、通常は ` 形式の展開で参照されます。$expl[@]'
これにより、配列の空の要素が保持されます。

アクションの実行中、配列 `ライン' は通常に設定されます
コマンドラインからの引数、つまり、コマンドラインの次の単語
すべてのオプションとその引数を除いたコマンド名。 オプションは次の場所に保存されます。
連想配列 `opt_args' オプション名をキーとし、その引数を
価値観。 複数の引数を持つオプションの場合、これらは XNUMX つとして指定されます
コロンで区切られた文字列。 元の引数内のすべてのコロンが前に付けられます
バックスラッシュ付き。

パラメータ `コンテキスト' は、呼び出し元の関数に戻って次の処理を実行するときに設定されます。
` という形式のアクション->string'。 に対応する要素の配列に設定されます。
の要素 $ state。 各要素は、引数フィールドに適切な名前です。
コンテキスト: ` 形式の文字列のいずれかオプション-選択する-n' のために nの第 引数
オプション -選択する、または ` 形式の文字列口論-n' のために n番目の引数。 のために
`rest' 引数、つまり位置によって処理されない最後のリスト内の引数、 n
文字列 ` です残り'。 たとえば、引数を完成させるとき、 -o オプション、
名前は「」ですオプション-o-1'、一方、XNUMX 番目の通常 (オプションではない) 引数の場合は次のようになります。
`引数-2'.

さらに、評価の際に、 アクション のコンテキスト名 現在のコンテキスト
パラメータは、に格納されているものと同じ文字列を追加するように変更されます。 コンテキスト
パラメータに一致する最初のデバイスのリモートコントロール URL を返します。

オプション -C 伝える _引数 を変更するには 現在のコンテキスト アクションのパラメータ
フォーム「->状態'。 これは、
現在のコンテキスト。 ここにあります(ではありません) コンテキスト 配列) をローカルに作成する必要があります。
変更された値が戻されないように関数を呼び出し、初期化する必要があります。
関数の開始時の現在の値に変換します。

ローカル curcontext="$curcontext"

これは、複数の状態を同時に有効にすることができない場合に役立ちます。

指定 の試合に セット of オプション

セットを使用してオプションと引数の複数のセットを指定することができます。
単一のハイフンで区切ります。 最初のハイフンより前の仕様 (存在する場合)
残りのすべてのセットで共有されます。 XNUMX つおきのセットの最初の単語は、
仕様の除外リストに表示されるセットの名前。
単独、または上記の可能な値の XNUMX つの前に指定します。 XNUMX 番目のケースでは、
`-' がこの名前と残りの間に表示される必要があります。

具体的な例を挙げますと、以下の通りです。

_引数 \
-a \
- set1 \
-c \
- set2 \
-d \
':引数:(x2 y2)'

これにより XNUMX つのセットが定義されます。 コマンドラインにオプション ` が含まれる場合-c'、'-d'
オプションと引数は補完候補とみなされません。 それがいつ
`が含まれています-d' または引数、オプション `-c」は考慮されません。 しかし、
`の後-a' 両方のセットは引き続き有効とみなされます。

相互に排他的なセットの XNUMX つに指定された名前が ` の形式である場合()'
その場合、各セットから XNUMX つの値のみが完成します。 より正式には、すべて
仕様は、同じセット内の他のすべての仕様とは相互に排他的です。
これは、相互に排他的な複数のオプション セットを定義する場合に便利です。
ここで、オプションは相互のエイリアスです。 例えば:

_引数 \
-a -b \
- '(圧縮)' \
{-c,--compress}'[圧縮]' \
- '(解凍)' \
{-d,--decompress}'[解凍]'

完了コードはセットごとにコマンドラインを個別に解析する必要があるため、これは
引数の形式は遅いため、必要な場合にのみ使用してください。 便利な
多くの場合、alternative は残余引数を伴うオプション仕様です (次のように)。
`-foo:*:...'); ここにオプションがあります -ふー 残りの引数をすべて飲み込みます
によって記述される オプターグ 定義。

導出 スペック フォーム from   助けます 出力

オプション`--' 許可します _引数 長いオプションの名前を解決するには、
`をサポートします - 助けて' オプションは、多くの GNU コマンドで標準です。 コマンド
word は引数 ` を付けて呼び出されます - 助けて' と、オプション名を調べた出力。
これをサポートしていないコマンドにこれを渡すのは明らかに危険です。
コマンドの動作は未指定であるため、オプションを使用します。

オプションに加えて、`_引数 --' 引数の型を推測しようとします
` という形式の場合にオプションとして使用できます--オプト=ヴァル」は有効です。 以下のことも可能です
コマンドのヘルプ テキストを調べて追加することでヒントを提供します。 ヘルプスペック
フォーム `パターン:メッセージ:アクション'; その他に注意してください _引数 スペック フォームは使用されません。
当学校区の パターン オプションのヘルプ テキストと照合され、それが
メッセージ   アクション 他の引数指定子と同様に使用されます。 特殊な場合
`*:' は両方を意味します メッセージ   アクション 空であるため、次のような影響があります。
ヘルプ出力に説明のないオプションは、リスト内で前に並べる必要があります。
説明のあるオプション。

具体的な例を挙げますと、以下の通りです。

_引数 -- '*\*:切り替え:(はい いいえ)' \
'*=ファイル*:ファイル:_ファイル' \
'*=DIR*:ディレクトリ:_files -/' \
'*=PATH*:ディレクトリ:_files -/'

ここで、「はい'と `いいえ' は、その説明が記載されているオプションの引数として補完されます。
星で終わります。 部分文字列を含むオプションのファイル名が完成します。
`=ファイル' 説明文にあります。 オプションのディレクトリが完成します。
説明に ` が含まれています=DIR'または `= PATH'。 最後の XNUMX つは実際にはデフォルトであり、
したがって、明示的に指定する必要はありませんが、の使用をオーバーライドすることは可能です。
これらのパターン。 この機能を使用する一般的なヘルプ テキストは次のとおりです。

-C、 --ディレクトリ=DIR 変化する 〜へ ディレクトリにジョブを開始します。 DIR

上記の仕様により、ディレクトリが完成するようになります。
`- ディレクトリ'、ただし ' の後ではない-C'.

また注意してください _引数 の引数が正しいかどうかを自動的に調べようとします。
オプションは任意です。 これは、前にコロンを XNUMX つ付けることで明示的に指定できます。
  メッセージ.

Status パターン `で終わる( - )'、これはパターンから削除され、 アクション
は ` の直後にのみ使用されます='、次の言葉ではありません。 これは
` の形式で定義された通常の仕様の動作=-'.

`_引数 --' の後にオプション ` を続けることができます-i パターン' パターンを与える
完了しないオプションについては。 パターンには名前を付けることができます
配列パラメータの、または括弧内のリテラル リストとして。 例えば、

_引数 -- -i \
"(--(en|dis)able-FEATURE*)"

補完によりオプションが無視されます `--enable-FEATURE'と
`--disable-FEATURE' (この例は GNU で役立ちます configure).

`_引数 --' フォームの後にオプション ` を続けることもできます-s ペア' 記述するために
オプションのエイリアス。 の ペア 交互のパターンのリストで構成され、
対応する置換を括弧で囲み、単一の引用符で囲みます。
の引数の単語 _引数 コール。

たとえば、 configure-script ヘルプ出力では、オプションについてのみ説明します。
`--enable-foo' ですが、スクリプトは否定形式 ` も受け入れます--foo を無効にする'。 に
XNUMX 番目のフォームの入力を許可します。

_引数 -- -s "((#s)--有効- --無効化-)」

その他 ノート

最後に、注意してください _引数 一般に、主要な関数処理であることが期待されます
それが使用される任意の補完。 状態を変える副作用がある可能性があります
その後に呼び出される他の関数によって追加された一致の処理。 結合します
_引数 他の関数を使用する場合は、それらの関数を前に呼び出す必要があります。
_引数アクション 中に スペック、または ` のハンドラー内->状態' 行動。

より一般的な使用例を次に示します。 _引数:

_引数 '-l+:左 国境:' \
'-形式:紙 サイズ:(文字 A4)」 \
'*-コピー:出力 ファイル:_ファイル::解像度:(300 600)」 \
':追記 ファイル:_files -g \*.\(ps\|eps\)' \
'*:ページ 番号:'

ここでは XNUMX つのオプションについて説明します。-l'、 `-フォーマット'、および `-コピー'。 最初のものは XNUMX つかかります
引数は ` として記述されます 国境' 完了は提供されません。
空のアクションの。 その引数は ` の直後に来る場合があります-l'あるいはそうかもしれない
行の次の単語として与えられます。

`-フォーマット' オプションは、次の単語で XNUMX つの引数を受け取り、` として記述されます。 サイズ'
文字列 ` のみ手紙'と `A4』が完成します。

`-コピー' オプションはコマンド ラインに複数回出現する場合があり、XNUMX つ必要です
引数。 XNUMX つ目は必須であり、ファイル名として完成します。 二番目
はオプションです (説明 ` の前に XNUMX 番目のコロンがあるため)分解能') と
文字列 ` から完成します300'と `600'.

最後の XNUMX つの説明は、引数として何を完成させる必要があるかを示しています。 最初
最初の引数を ` として記述します追記 file' で終わるファイルが作成されますps'
または `EPS』が完成する。 最後の説明では、他のすべての引数に
説明 `ページ 番号' しかし、補完は提供されません。

_キャッシュ_無効 キャッシュ識別子
この関数は、対応する完了キャッシュが存在する場合、ステータス XNUMX を返します。
指定されたキャッシュ識別子は再構築する必要があります。 これは、
キャッシュポリシー 現在のコンテキストのスタイル。 これにより関数名が提供されるはずです
これは、関連するキャッシュ ファイルへのフル パスを唯一の引数として実行されます。

例:

_example_caching_policy () {
# 再構築する if キャッシュ is より a 週間 古い
ローカル -a 老人
古いp=( 「$1」(Nm+7) )
(( $#oldp ))
}

_call_function return [ argは ...]
関数の場合 存在する場合は、引数を使用して呼び出されます argはだ。ザ return
引数は、関数からの戻りステータスが含まれるパラメータの名前を指定します。
保管する必要があります。 もし return 空または単一のハイフンは無視されます。

の返品状況は、 _call_function 関数の場合、それ自体がゼロになります 存在し、
が呼び出され、それ以外の場合はゼロ以外です。

_call_program タグ string ...
この関数は、ユーザーが外部ファイルの使用をオーバーライドするメカニズムを提供します。
指示。 調べてみると、 command 付属のスタイル タグ。 スタイルが
設定すると、その値が実行するコマンドとして使用されます。 の stringへの通話から
_call_program、またはスタイルが設定されている場合は、それらの間にスペースを入れて連結されます。
そして結果の文字列が評価されます。 返品ステータスは、
というコマンド。

_組み合わせ [ -s パターン ] タグ スペック ... フィールド optsの ...
この関数は、値の組み合わせを完成させるために使用されます。たとえば、
ホスト名とユーザー名。 の 引数は、を定義するスタイルを与えます。
ペア。 というコンテキストで検索されます。 タグ 指定。

スタイル名は、ハイフンで区切られたフィールド名で構成されます。例:
`ユーザー-ホスト-ポート'。 各フィールドの値はすでにわかっており、 スペック
フォーム `フィールド=パターン』と与えられる。 たとえば、これまでのコマンド ラインで次のように指定されているとします。
ユーザー `pws'、引数 `ユーザー=pws' と表示されるはずです。

等号のない次の引数は、フィールドの名前として解釈されます。
補完が生成される必要があります (おそらく、 フィールドそのための
値はわかっています)。

生成された一致はスタイルの値から取得されます。 これらは、
組み合わせの可能な値が適切な順序で含まれています (ユーザー、
上の例ではホスト、ポート)。 さまざまなフィールドの値
異なるフィールドはコロンで区切られます。 これはオプションで変更できます -s
〜へ _組み合わせ パターンを指定します。 通常、これは文字クラスです。
たとえば、-s 「[:@]」'の場合 ユーザーホスト スタイル。 それぞれ
`フィールド=パターン' 仕様により、要素に適用される補完が制限されます。
適切に一致するフィールドを含むスタイル。

指定された名前のスタイルが指定されたタグに定義されていない場合、または
スタイルの値の文字列は一致しますが、必須フィールドの関数名が前にあります
アンダースコアが定義されている場合、その関数が呼び出されて一致を生成します。
たとえば、` がない場合、ユーザー-ホスト-ポート' またはホストが一致するホスト名がない場合
が必須の場合、関数 `_hosts' が自動的に呼び出されます。

複数のフィールドに同じ名前が使用されている場合、両方の `フィールド=パターン'と
入力するフィールドの名前を指定する引数、フィールドの番号
フィールド (XNUMX から始まる) は、フィールド名の後に、フィールド名と区切って指定できます。
結腸。

必須フィールド名の後のすべての引数は、 コンパッド 生成するとき
スタイル値から一致するか、フィールドの関数に一致します (フィールドが一致する場合)。
と呼ばれます。

_説明 [-12JVx] [ -oO | -t タグ ] 説明 name1 [ name2 ] [ オプト ...]
[ -- name1 [ name2 ] [ オプト ...] ...]
この関数は、補完を説明に関連付けます。 複数のグループが分離される
by -- 異なる補完オプションを使用して提供できる可能性があります オプトs.

当学校区の 説明 一致する場合、上に表示する文字列として解釈されます。 形式でアーカイブしたプロジェクトを保存します. のスタイル
  説明 タグが設定されています。 これに XNUMX つまたは XNUMX つの配列名が続きます
続いて渡すオプション コンパッド。 最初の配列には可能な値が含まれています
` 形式の説明を含む補完完成:説明'。 どれでも
リテラルのコロン 完成 バックスラッシュで囲む必要があります。 XNUMX 番目の配列が
与えられた場合、最初のものと同じ数の要素を持つ必要があります。 この場合、
対応する要素は、の代わりに可能な補完として追加されます。 完成
最初の配列からの文字列。 完了リストには説明が保持されます
最初の配列から。 最後に、一連の完了オプションが表示されます。

オプション `-o' が最初の引数の前にある場合、追加される一致は次のようになります。
コマンド オプションの名前として扱われます (シェル オプションではないことに注意してください)。通常は、
`-'、 `--'または `+' コマンドラインで。 この場合 _説明 使用
プレフィックス非表示, プレフィックスが必要   詳細 文字列が必要かどうかを確認するためのスタイル
補完として追加し、説明を表示する必要があるかどうかを確認します。 ` なし-o'
オプションのみ、 詳細 スタイルは、説明の表示方法を決定するために使用されます。 もし
`-O' は ` の代わりに使用されます-o'、コマンドオプションは上記のように完了しますが、 _説明
は扱いません プレフィックスが必要 スタイル。

-t オプションa タグ を指定することができます。 デフォルトは `' または、 -o
オプションが指定されている場合、`オプション'.

オプション -1, -2, -J, -V, -x に渡されます _next_label.

によって選択された場合、 リストグループ化 スタイル、同じ説明を持つ文字列は、
リストに一緒に表示されます。

_説明 使用 _all_labels 一致を生成する関数なので、
タグラベルのループ内に出現する必要があります。

_説明 [ -x ] [ -12VJ ] タグ 説明 [ スペック ...]
この関数を前の関数と混同しないでください。 それはヘルパーとして使用されます
オプションを作成するための関数 コンパッド。 それはより高いものの多くの中に埋もれています
レベル補完関数なので、多くの場合、直接呼び出す必要はありません。

以下にリストされているスタイルは、指定されたメソッドを使用して現在のコンテキストでテストされます。 タグを選択します。
結果として得られるオプション コンパッド という名前の配列に入れられます (これは
伝統的に「エキスパート' ただし、この規則は強制されません)。 の説明
対応する一致セットが関数に渡されます。 説明.

テストされたスタイルは次のとおりです。 形式でアーカイブしたプロジェクトを保存します., 隠されました, マッチャー, 無視されたパターン   グループ名.
当学校区の 形式でアーカイブしたプロジェクトを保存します. スタイルは指定されたものに対して最初にテストされます タグ そして、 説明
値が見つからなかった場合はタグを使用し、残りは次のように指定されたタグについてのみテストされます。
最初の引数。 この関数はまた、 _設定 さらにいくつかのスタイルをテストします。

によって返される文字列 形式でアーカイブしたプロジェクトを保存します. スタイル (存在する場合) は次のように変更されます。
シーケンス`%d'はに置き換えられます 説明 何もなしで XNUMX 番目の引数として指定されます
先頭または末尾の空白。 空白を削除した後、 説明 is
空の文字列の場合、書式スタイルは使用されず、オプションが
配列には、上に表示される説明文字列は含まれません。
一致します。

If _説明 XNUMX つ以上の引数を指定して呼び出された場合、追加の スペックs
`の形式である必要がありますチャリオット:STR'。 これらは、エスケープ シーケンスの置換を提供します。
  形式でアーカイブしたプロジェクトを保存します. スタイル: ` のすべての出現%チャリオット' は次のように置き換えられます string.

Status -x オプションが与えられると、説明が渡されます コンパッド -x
デフォルトの代わりのオプション -X。 つまり、説明は次のようになります
対応する一致がない場合でも表示されます。

配列に配置されたオプション を考慮してください グループ名 スタイルなので、
必要に応じて、一致したものは別のグループに配置されます。 グループには通常、
ソートされた要素 (オプションを渡すことにより) -J 〜へ コンパッド)、ただしオプションが開始されている場合
`で-V'、 `-J'、 `-1'、または `-2' が渡されます _説明、そのオプションは次のようになります
配列に含まれています。 したがって、補完グループは次のようになる可能性があります。
` オプションを指定するとソートされません-V'、 `-1V'、または `-2V'.

ほとんどの場合、この関数は次のように使用されます。

ローカル エキスパート
_説明 ファイル エキスパート file
コンパッド 「$expl[@]」 - 「$files[@]」

パラメータの使用に注意してください エキスパート、ハイフン、および一致するリスト。 ほとんど
へのすべての通話 コンパッド 補完システム内では同様の形式を使用します。 これ
ユーザー指定のスタイルが組み込みに正しく渡されることを保証します。
完成の内部を実装します。

_急送 コンテキスト string ...
これにより、現在のコンテキストが次のように設定されます コンテキスト そして補完関数を探します
コマンド名のリストを検索するか、特殊なコマンドを使用して、このコンテキストを処理します。
コンテキスト (上記で説明したように) 圧縮定義) として与えられる strings. 最初の完成
リスト内のいずれかのコンテキストに対して定義される関数は、生成するために使用されます。
一致します。 通常、最後は string is デフォルト- 関数をデフォルトにする
フォールバックとして使用される完了。

関数はパラメータを設定します $サービス から string 試行されており、
コンテキスト/コマンド のフィールド (XNUMX 番目) $curcontext へのパラメータ コンテキスト
最初の引数として与えられます。

_files 関数 _files 呼び出し _path_files 渡されたすべての引数を除いて
-g   -/。 これら XNUMX つのオプションの使用は、
ファイルパターン スタイル。

この関数は、によって許可されるオプションの完全なセットを受け入れます。 _path_files、説明
を参照してください。

_gnu_generic
この関数は、 _引数 上で説明した機能。
コマンドによって認識される長いオプションを自動的に決定するために使用できます。
オプション ` が渡されたときにリストを生成するもの - 助けて'。 として使用することを目的としています。
それ自体がトップレベルの補完関数です。 たとえば、オプションを有効にするには
コマンドの完了 foo   バーには

圧縮定義 _gnu_generic foo バー

への呼び出し後 コンパイル.

提供されている補完システムは、この関数の使用において保守的です。
コマンドがオプション ` を確実に理解することが重要であるため、 - 助けて'.

_ガード [ オプション ] パターン 説明
この機能は表示します 説明 if パターン 完成する文字列と一致します。 それは
で使用することを目的としています アクション に渡された仕様については、 _引数  
同様の機能。

メッセージが表示され、完了する単語が次の場合、戻りステータスは XNUMX です。
空ではなく、それ以外の場合はゼロ以外です。

当学校区の パターン によって理解される任意のオプションを前に置くことができます。 コンパッド そのアール
から受け継がれた _説明、すなわち、 -M, -J, -V, -1, -2, -n, -F   -X。 すべての
これらのオプションは無視されます。 これは、引数の受け渡しに便利に適合します。
~のための行動の約束事 _引数.

例として、次のオプションを取るコマンドを考えてみましょう。 -n   -なしここで、 -n
同じ単語の後に数値が続きます。 以下を使用して:

_引数 '-n-: :_ガード 「[0-9]#」 「数値 価値"' '-なし'

_引数 両方のメッセージを表示させることができます `数値の ' そして完了
` の後のオプション-n'。 ` の場合-n' の後にはすでに XNUMX つ以上の数字が続いています
(渡されたパターン _ガード) メッセージのみが表示されます。 `の場合-n」は
その後に別の文字が続く場合は、オプションのみが完了します。

_メッセージ [ -r12 ] [ -VJ グループヘッド ] 説明
_メッセージ -e [ タグ ] 説明
当学校区の 説明 の XNUMX 番目の引数と同じように使用されます。 _説明
ただし、結果の文字列は常に表示されるかどうかに関係なく表示されます。
一致が生成されました。 これは、ヘルプ メッセージを所々に表示する場合に便利です。
ここでは完了を生成できません。

当学校区の 形式でアーカイブしたプロジェクトを保存します. スタイルは、 メッセージ メッセージを見つけるにはタグを付けます。 いつもの
タグ、 説明, スタイルが前者で設定されていない場合にのみ使用されます。

Status -r オプションが指定されている場合、スタイルは使用されません。 の 説明 文字通り次のように受け取られます
表示する文字列。 これは、次の場合に最も役立ちます。 説明 前処理されたものから来ています
すでに展開された説明が含まれている引数リスト。

当学校区の -12VJ オプションと グループヘッド に渡されます コンパッド そしてグループを決定します
メッセージ文字列が追加されます。

2番目の -e フォームはタグを使用して補完の説明を提供します タグ 示される
そのタグに一致するものがない場合でも。 このフォームは次によって呼び出されます。 _引数 in
オプション指定に対するアクションがないイベント。 タグは次のとおりです
省略されている場合、タグはパラメータから取得されます。 $curtag; これは維持されています
完了システムによるものなので、通常は正しいです。 ない場合は注意してください。
この関数が呼び出された時点で一致します。 compstate[挿入] クリアされているので、
後で生成される追加の一致はコマンド ラインに挿入されません。

_マルチパーツ 9月 配列
議論 9月 区切り文字です。 の 配列 の名前のいずれかである可能性があります
配列パラメータまたは ` 形式のリテラル配列(ふー バー)'、括弧で囲まれたリスト
空白で区切られた単語。 可能な補完は、
配列。 ただし、各チャンクは次のように区切られています。 9月 別途完成となります。 のために
例、 _タール 関数は`を使用します_マルチパーツ / パス配列' 部分的なファイルを完成させるには
指定された完全なファイル パスの配列からのパス。

当学校区の -i オプションの原因 _マルチパーツ 必要な場合でも一意の一致を挿入するには
複数のセパレータを挿入します。 これは通常、予期される動作ではありません
ファイル名が含まれますが、他の特定の種類の補完も含まれます。
可能性の固定セットは、この形式により適している可能性があります。

他のユーティリティ関数と同様に、この関数は `-V'、 `-J'、 `-1'、 `-2',
`-n'、 `-f'、 `-X'、 `-M'、 `-P'、 `-S'、 `-r'、 `-R'、および `-q' オプションを指定してそれらを渡します
  コンパッド 内蔵。

_next_label [ -x ] [ -12VJ ] タグ 説明 [ オプション ...]
この関数は、さまざまなタグラベルに対するループを実装するために使用されます。
上で説明した特定のタグ タグ順 スタイル。 呼び出しごとにチェックします
他にタグラベルがあるかどうかを確認します。 存在する場合はステータス XNUMX を返します。
それ以外の場合はゼロ以外。 この関数には現在のタグを設定する必要があるため、
への呼び出しには常に従う _タグ or _リクエスト済み.

当学校区の -x12VJ オプションと最初の XNUMX つの引数は、 _説明
関数。 必要に応じて、 タグ この呼び出しではタグ ラベルに置き換えられます。
に記載されている説明はすべて、 タグ順 スタイルが優先されます 説明 に渡された
_next_label.

当学校区の オプションの後に与えられる 説明 で与えられるパラメータに設定されます 、 それゆえ
に渡される コンパッド または、一致を追加するために呼び出される関数。

タグに対するこの関数の一般的な使用例を次に示します。 foo。 への呼び出し _リクエスト済み
タグかどうかを決定します foo まったく必要です。 ループオーバー _next_label 何でも扱う
のタグに定義されたラベル タグ順 スタイル。

ローカル エキスパート ret=1
...
if _リクエスト済み ふー; その後
...
while _next_label foo エキスパート 「...」; do
コンパッド 「$expl[@]」 ... && ret=0
行われ
...
fi
return RET

_普通
これは、特別な外部で完了を処理するために呼び出される標準関数です。
-コンテキスト-。 コマンドワードと引数を完成させるために呼び出されます。
コマンドの場合。 XNUMX 番目のケースでは、 _普通 そのための特別な補完を探しています
コマンドが存在しない場合は、補完を使用します。 デフォルト- コンテキスト。

XNUMX 番目の使用法は、 $words 配列と
$カレント 変更後のパラメータ。 たとえば、関数
_プリコマンド、次のようなプリコマンド指定子の後に完了します。 nohup、削除します
からの最初の言葉 言葉 配列、デクリメントします 現在 パラメータを指定して呼び出します
_普通 また。 その効果は「nohup CMD ...' は次と同じように扱われます
`CMD ...'.

コマンド名がオプションのいずれかで指定されたパターンのいずれかに一致する場合 -p or
-P 〜へ 圧縮定義、対応する補完関数が呼び出され、
パラメーター _compskip にチェックが入っています。 設定されている場合はその時点で完了が終了します
一致するものが見つからなかった場合でもポイントを返します。 これは、
-最初- コンテキスト。

_options
これを使用して、シェル オプションの名前を完成させることができます。 マッチャーを提供します
先頭の ` を無視する仕様いいえ'、アンダースコアを無視して許可します
大文字を対応する小文字と一致させる (例: `地球',
`ノグロブ'、 `NO_GLOB」はすべて完了しています)。 引数はすべて
コンパッド 内蔵。

_オプション_セット   _options_unset
これらの関数は、同じ一致を持つオプションの設定または設定解除のみを完了します。
で使用される仕様 _options 機能。

内の数行のコメントを解除する必要があることに注意してください。 _main_complete の機能
これらの機能が適切に動作するようにします。 問題の行は、
完了ウィジェットがオプションをローカルに設定する前に有効なオプション設定
ニーズ。 したがって、これらの関数は通常、補完システムでは使用されません。

_パラメーター
これはシェルパラメータの名前を完成させるために使用されます。

オプション`-g パターン' 補完を、型が一致するパラメータに制限します。
パターン。 パラメータの型は ` で示される型です。印刷 ${(t)パラメータ}'、したがって、
`の賢明な使用*パターン おそらく必要です。

他のすべての引数は コンパッド 内蔵。

_path_files
この関数は、ファイル名を補完するために補完システム全体で使用されます。 それ
部分的なパスを完成させることができます。 たとえば、文字列 `/u/i/s/sig' 多分
`まで完了しました/usr/include/sys/signal.h'.

両方が受け入れるオプション _path_files   _files には次の値があります:

-f すべてのファイル名を入力します。 これがデフォルトです。

-/ ディレクトリのみを完了するように指定します。

-g パターン
に一致するファイルのみを指定します。 パターン 完了する必要があります。

-W パス
からの文字列の先頭に付加されるパス接頭辞を指定します。
コマンドラインを使用してファイル名を生成しますが、それを次のように挿入しないでください。
完了リストにも表示されません。 ここ、 パス 名前かもしれない
配列パラメータ、括弧で囲まれたパスのリテラル リスト、または
絶対パス名。

-F 無視されたファイル
これは、対応するオプションと同様に動作します。 コンパッド 内蔵。 それ
どのファイル名を無視するかを直接制御できます。 オプションの場合
が存在しない場合、 無視されたパターン スタイルが使用されます。

両方 _path_files   _files に渡される次のオプションも受け入れます
コンパッド:`-J'、 `-V'、 `-1'、 `-2'、 `-n'、 `-X'、 `-M'、 `-P'、 `-S'、 `-q'、 `-r'、および
`-R'.

最後に、 _path_files 関数はスタイルを使用します 拡張, あいまいな, 特別ディレクトリ,
リストサフィックス   ファイルソート 上述した。

_pick_variant [ -b 内蔵ラベル ] [ -c command ] [ -r ]
ラベル=パターン ... ラベル [ argは ...]
この関数は、単一のコマンド名が必要な状況を解決するために使用されます。
複数のバリアントがあるため、または
XNUMX つの異なるコマンド間に名前の衝突があるためです。

実行するコマンドは配列の最初の要素から取得されます 言葉 これでない限り
オプションによってオーバーライドされます -c。 このコマンドが実行され、その出力が比較されます
一連のパターンで。 コマンドに渡す引数を指定可能
他のすべての引数の後に最後に。 順番に試すパターンが示されています
引数によって ラベル=パターン; ` の出力の場合 command argは ...」が含まれています
パターンをタップし、その後、 ラベル コマンドバリアントのラベルとして選択されています。 どれも無い場合
パターンが一致すると、最後のコマンド ラベルが選択され、ステータス 1 が返されます。

`の場合-b 内蔵ラベル' が指定された場合、コマンドはそれが提供されているかどうかを確認するためにテストされます
シェル組み込みとして、おそらく自動ロードされます。 そうであれば、ラベル 内蔵ラベル 選択されている
バリアントのラベルとして。

`の場合-r ' が与えられると、 ラベル 選択された値は、という名前のパラメータに保存されます。 .

結果は次の場所にもキャッシュされます。 _cmd_variant によってインデックス付けされた連想配列
実行するコマンドの名前。

_regex_arguments スペック ...
この関数は補完関数を生成します 仕様に一致するもの
スペックs、以下で説明する正規表現のセット。 走った後
_regex_arguments、 関数 正常終了として呼び出す必要があります
関数。 一致するパターンは、 言葉 アレイアップ
現在のカーソル位置をヌル文字で結合します。 引用なし
適用される。

引数は、` で区切られた選択肢のセットとしてグループ化されます。|'、試みられています
XNUMX つが一致するまで、次々と実行されます。 各選択肢は XNUMX つ以上の
左から右に試行される仕様。一致する各パターンは次のとおりです。
グループ全体がテストされるまで、テスト対象のコマンド ラインから順番に削除されます。
成功するか、失敗するまで。 後者の場合、次の代替案が試行されます。
この構造は、括弧を使用して任意の深さまで繰り返すことができます。 マッチング
内側から外側へ進みます。

テストが成功せず、残りのコマンド ラインが成功した場合は、特別な手順が適用されます。
文字列にはヌル文字が含まれていません (残りの単語がその単語であることを意味します)
完了が生成されます)。 完了目標は以下に限定されます。
残りの単語と任意の アクション対応するパターンの が実行されます。 で
この場合、コマンドライン文字列からは何も削除されません。 の順
の評価 アクションは次によって決定できます。 タグ順 スタイル; さまざまな
でサポートされている形式 _代替 で使用できます アクションを選択します。 説明 使用され
配列パラメータの設定 エキスパート.

仕様の引数は次のいずれかの形式をとり、次のようなメタ文字が使用されます。
`として('、 `)'、 `#'と `|' を引用する必要があります。

/パターン/ [%先のことを考える%] [-ガード] [:タグ:説明:アクション]
これは単一の基本コンポーネントです。 この関数は、
組み合わせパターン `(#b)((#B)パターン)先のことを考える*' コマンドラインと一致します
弦。 そうであれば、「ガード' が評価され、その戻りステータスが調べられます。
テストが成功したかどうかを判断します。 の パターン 文字列 `[]」が保証されています
決して一致しない。 の 先のことを考える 前にコマンドラインから削除されません
次のパターンが検討されます。

で始まる議論 : の引数と同じ方法で使用されます。
_代替.

コンポーネントは次のように使用されます。 パターン コンポーネントが
コマンドラインにすでに存在します。 そうであれば、次のいずれか
完成すべきものを見つけるために仕様が検討されます。 コンポーネントの場合
に達しましたが、そのようなパターンはコマンドラインにまだ存在しません。文字列
含みます アクション は、その時点に挿入する一致を生成するために使用されます。

/パターン/+ [%先のことを考える%] [-ガード] [:タグ:説明:アクション]
これは ` に似ています/パターン/ ...' ただし、コマンドラインの左側の部分
文字列(つまり、前のパターンですでに一致している部分)も
完了目標の一部とみなされます。

/パターン/- [%先のことを考える%] [-ガード] [:タグ:説明:アクション]
これは ` に似ています/パターン/ ...' しかし アクション現在の s と
以前に一致したパターンは、次の ` の場合でも無視されます。パターン'
空の文字列と一致します。

( スペック )
括弧はグループ化に使用できます スペックs; 各括弧は単一であることに注意してください
への議論 _regex_arguments.

スペック # これにより、任意の回数の繰り返しが可能になります スペック.

スペック スペック
2 スペックは、上で説明したように、次々と照合されます。

スペック | スペック
XNUMX つのどちらか スペックと一致させることができます。

関数 _regex_words 一致を生成するヘルパー関数として使用できます。
コマンドラインとして独自の引数を伴う一連の代替単語
引数。

例:

_regex_arguments _tst /$'[^\0]#\0'/ \
/$'[^\0]#\0'/ :'コンパッド ああ」

これにより関数が生成されます _tst それは完了します 単4 唯一の引数として。 の タグ
  説明 簡潔にするためにアクションは省略されています(これは機能しますが、実際には機能しません)
通常の使用を推奨します)。 最初のコンポーネントはコマンドの単語と一致します。
任意; XNUMX 番目は任意の引数に一致します。 議論も任意なので、
以下のコンポーネントは依存しません 単4 存在していること。

_regex_arguments _tst /$'[^\0]#\0'/ \
/$'aaa\0'/ :'コンパッド ああ」

これはより一般的な使用法です。 似ていますが、次のパターンはいずれも
一致する場合 単4 最初の引数として存在しました。

_regex_arguments _tst /$'[^\0]#\0'/ \( \
/$'aaa\0'/ :'コンパッド ああ」 \
/$'bbb\0'/ :'コンパッド BB」 \) \#

この例では、不特定の数のコマンド引数を入力できます。 奇数
引数は次のように完成します 単4 そして引数さえも BBB。 次の場合を除き、完了は失敗します。
のセット 単4   BBB 現在の引数の前の引数が正しく一致します。

_regex_arguments _tst /$'[^\0]#\0'/ \
\( /$'aaa\0'/ :'コンパッド ああ」 \| \
/$'bbb\0'/ :'コンパッド BB」 \) \#

これも似ていますが、どちらかです 単4 or BBB 任意の引数に対して完了することができます。 この中で
場合 _regex_words に適した式を生成するために使用できます。
引数

_regex_words タグ 説明 スペック ...
この関数は、 _regex_arguments command
これは、一連のルールが予期される任意の場所に挿入できます。 の タグ  
説明 現在のコンテキストに関連する標準タグと説明を与えます。
スペック コロンで区切られた XNUMX つまたは XNUMX つの引数が含まれています。
この場合、先頭にコロンはありません。

スペック この時点で完成する可能性のある一連の単語のうちの XNUMX つを一緒に与えます
引数付き。 したがって、これは次とほぼ同等です。 _引数 使用時の機能
通常の (非正規表現) 補完です。

の一部 スペック 最初のコロンの前に完成する単語が入ります。 これはもしかしたら
含む *; 前後の単語全体 * 完成しましたが、
の前のテキスト * コンテキストが一致するには必須であるため、さらに
引数は省略形の後に入力できます。

の第二部 スペック 完成中の単語の説明です。

オプションの XNUMX 番目の部分 スペック あるものに続く単語がどのように続くかを説明します
完了すること自体が完了する必要があります。 を避けるために評価されます。
引用の問題。 これは、通常、ファイルへの参照が含まれていることを意味します。
以前に生成された正規表現引数を含む配列。

オプション -t 期間 通常のスペースの代わりに単語のターミネータを指定します。
これは、オプションの方法で自動削除可能なサフィックスとして処理されます。 -s 9月 〜へ
_値.

による処理の結果 _regex_words 配列に配置されます 返信、その
呼び出し関数に対してローカルにする必要があります。 単語と引数のセットの場合
繰り返し一致する可能性があります。 # その時点で生成された配列に追加する必要があります
ポイント。

具体的な例を挙げますと、以下の通りです。

ローカル -a 返信
_regex_words mydb コマンド 'mydb コマンド」 \
'追加:追加 an エントリ 〜へ mydb:$mydb_add_cmds' \
'ショーショー エントリー in マイデータベース」
_regex_arguments _mydb 「$reply[@]」
_mydb 「$ @」

これはコマンドの補完機能を示します。 マイデータベース これには XNUMX つのコマンドが必要です
引数、 加えます   表示する. 表示する 引数は取りませんが、 加えます 持ってる
すでに配列として準備されています mydb_add_cmds、おそらく以前の呼び出しによって
〜へ _regex_words.

_リクエスト済み [ -x ] [ -12VJ ] タグ [ 説明 [ command [ argは ...]]]
この関数は、への呼び出しによってタグがすでに登録されているかどうかを判断するために呼び出されます。
_タグ (下記を参照) はユーザーによって要求されたため、完了する必要があります。
そのために実行されました。 タグが要求された場合はステータス XNUMX を返し、ゼロ以外の場合はステータス XNUMX を返します。
さもないと。 この関数は通常、さまざまなタグに対するループの一部として使用されます。
以下:

_タグ foo バー バズ
while _タグ; do
if _リクエスト済み ふー; その後
... # 実行する 完成 foo
fi
... # test   タグ バー   バズ in   同じ 方法
... # 終了する ループ if マッチ した 生成された
行われ

一致が生成されたかどうかのテストは、
の終わり _タグ ループ。 これは、ユーザーが設定できるようにするためです。 タグ順 スタイルに
同時に完了するタグのセットを指定します。

If   説明 与えられ、 _リクエスト済み その _説明 これらを使って機能する
引数と渡されるオプション _リクエスト済み.

If command 与えられた、 _all_labels 関数はすぐに呼び出されます
同じ議論。 単純なケースでは、これにより、
タグ付けとマッチングを一度に行います。 例えば:

ローカル エキスパート ret=1
_タグ foo バー バズ
while _タグ; do
_リクエスト済み foo エキスパート '説明' \
コンパッド foob​​ar フーバズ && ret=0
...
(( RET )) || 破る
行われ

Status command ではありません コンパッドそれでも、同じことを処理できるように準備する必要があります。
オプション。

_retrieve_cache キャッシュ識別子
この関数は、指定されたファイルから完了情報を取得します。
キャッシュ識別子で指定されたディレクトリに保存されます。 キャッシュパス どのスタイル
デフォルトは ~/.zcompcache。 取得が成功した場合、戻りステータスは XNUMX になります。
次の場合にのみ取得を試みます。 使用キャッシュ スタイルが設定されているので、これを呼び出すことができます
ユーザーがキャッシュ層を使用したいかどうかを気にすることなく機能します。

詳細はこちら: _ストア_キャッシュ 詳細は以下をご覧ください。

_XNUMX月_パーツ
この関数には、引数として配列と区切り文字が交互に渡されます。 配列
セパレータで区切られる文字列の部分の補完を指定します。 の
配列は、配列パラメータの名前、または引用符で囲まれた単語のリストである場合があります。
括弧。 たとえば、配列 ` を使用すると、ホスト=(ftp ニュース)「電話」_XNUMX月_パーツ
'(ふー バー)' @ ホスト' は文字列 ` を完成させますf' から 'foo' と文字列 `禁止'から
`バー@ニュース'.

この関数は、 コンパッド オプション `-V'、 `-J'、 `-1'、 `-2'、 `-n'、 `-X'、 `-M',
`-P'、 `-S'、 `-r'、 `-R'、および `-q' そしてそれらをに渡します コンパッド ビルトインで使用されていた
マッチを追加します。

_順序 [ -s 9月 ] [ -n マックス ] [ -d ] function [ - ]..。
この関数は、分離された項目で項目を完了するための他の関数のラッパーです。
リスト。 同じ関数を使用して、リスト内の各項目を完成させます。 セパレータは
で指定 -s オプション。 場合 -s 省略された場合は ` が使用されます,'。 重複した値
そうでない限り一致しません -d と指定されている。 固定または最大数がある場合は、
リスト内の項目の場合、これは -n オプションを選択します。

コマンドと コンパッド オプションは関数に渡されます。 使用可能です コンパッド
直接と _順序しかし _値 この状況では、より適切かもしれません。

_設定 タグ [ グループヘッド ]
この関数は、補完システムで使用される特別なパラメータを設定します。
に適切に タグ 最初の引数として与えられます。 スタイルを使用します
リストの色, リストパック, リスト行が最初, ラストプロンプト, 正確に受け入れる, メニュー  
強制リスト.

オプション グループヘッド 一致が行われるグループの名前を指定します。
置いた。 与えられない場合は、 タグ グループ名として使用されます。

この関数はから自動的に呼び出されます _説明 したがって、通常はそうではありません
明示的に呼び出されます。

_ストア_キャッシュ キャッシュ識別子 パラメータ ...
この機能と併せて、 _retrieve_cache   _キャッシュ_無効、を実装します。
任意の補完関数で使用できるキャッシュ層。 取得したデータ
コストのかかる操作はパラメータに保存されます。 この関数は次に、次の値をダンプします。
これらのパラメータをファイルに保存します。 データはそのファイルからすぐに取得できます
_retrieve_cacheシェルの異なるインスタンスであっても。

当学校区の キャッシュ識別子 データをダンプするファイルを指定します。 の
ファイルは、で指定されたディレクトリに保存されます。 キャッシュパス デフォルトのスタイル
~/.zcompcache。 残り パラメータs 引数は、
ファイルにソフトウェアを指定する必要があります。

保存が成功した場合、戻りステータスは XNUMX になります。 この機能は、
次の場合は保管を試みます。 使用キャッシュ スタイルが設定されているので、この関数を呼び出すことができます
ユーザーがキャッシュ層を使用したいかどうかを気にする必要はありません。

補完関数は呼び出しを回避する可能性があります _retrieve_cache すでにある場合
完了データはパラメータとして利用可能です。 ただし、その場合は呼び出す必要があります
_キャッシュ_無効 パラメータとキャッシュ内のデータが正しいかどうかを確認します。
まだ有効。

の簡単な使用例については、_perl_modules 補完関数を参照してください。
キャッシュ層。

_タグ [[ -C ] タグ ...]
引数を指定して呼び出された場合、これらは有効なタグの名前とみなされます。
現在のコンテキストでの補完。 これらのタグは内部的に保存され、次の基準で並べ替えられます。
タグ順 スタイル。

次に、 _タグ 同じ完了から引数なしで繰り返し呼び出されます
関数。 これにより、要求されたタグの最初のセット、XNUMX 番目のセットなどが連続して選択されます。
ユーザーによる。 少なくとも XNUMX つのタグが要求された場合、戻りステータスは XNUMX になります。
それ以外の場合はゼロ以外。 特定のタグが試行されるかどうかをテストするには、 _リクエスト済み
関数を呼び出す必要があります (上記を参照)。

`の場合-C 』と与えられると、 引数フィールド (XNUMX 番目) に一時的に格納されます。
のコンテキストの 現在のコンテキスト への呼び出し中のパラメータ _タグ; フィールドは
終了時に復元されました。 これにより、 _タグ を持たずに、より具体的なコンテキストを使用するには
を変更してリセットするには、 現在のコンテキスト パラメータ(同じ効果があります)。

_値 [ -O ] [ -s 9月 ] [ -S 9月 ] [ -トイレ ] DESC スペック ...
これは、任意のキーワード (値) とその引数、またはリストを完成させるために使用されます。
このような組み合わせの。

最初の引数がオプション ` の場合-O 'と同じように使用されます。
を通じて、タンピングされたコーヒーベッドの上から均一にフィルターバスケットの内の粉に浸透していきます。 _引数 関数。 つまり、その要素は、 配列は
に渡された コンパッド アクションを実行するとき。

最初の引数 (または ` の後の最初の引数)-O ') は '-s'、次は
引数は、複数の値を区切る文字として使用されます。 このキャラクター
は、自動削除可能な方法で各値の後に自動的に追加されます (以下を参照)。
すべての値は ` で完成します_値 -s' コマンドラインの同じ単語に出現します。
を使用した完了とは異なります _引数。 このオプションが存在しない場合、単一の
値は単語ごとに完成します。

通常は、 _値 現在の単語のみを使用して、どの値がどの値であるかを決定します。
コマンドラインにすでに存在するため、再度実行する必要はありません。 もし
  -w オプションが指定されると、他の引数も同様に検査されます。

最初の非オプション引数は、前に説明として出力する文字列として使用されます。
値をリストします。

他のすべての引数は、可能な値とその引数を同じ形式で記述します。
によってオプションの説明に使用される形式 _引数 関数 (上記を参照)。
唯一の違いは、先頭にマイナス記号やプラス記号が必要ないことです。
値には引数を XNUMX つだけ指定でき、アクションの形式は等号で始まります。
記号はサポートされていません。

値とその引数を区切る文字は、オプションを使用して設定できます。 -S
-sの後に、次の引数で区切り文字として使用する文字が続きます)。
デフォルトでは、値と値の間の区切り文字として等号が使用されます。
引数

例:

_値 -s , '説明' \
「*foo[バー]」 \
'(XNUMX)*XNUMX[数字]:最初 カウント:' \
'XNUMX[別の] 番号]::秒 カウント:(1 2 3)」

これは XNUMX つの可能な値を示しています。foo'、 `XNUMXつ'、および `2'。 XNUMXつ目は
「」として説明されますバー' は引数をとらず、複数回出現する可能性があります。 XNUMXつ目は
「」として説明されます' は複数回出現する可能性があり、必須の引数を XNUMX つとります
「」として説明されます最初の カウント'; アクションが指定されていないため、完了しません。
`(二)先頭の ' は、値 ` がXNUMXつ' が行上にある、値
`2' は完了の可能性があるとはみなされなくなります。 最後に、最後の値
(`2') は ' として記述されます別の ' で説明されているオプションの引数を受け取ります
`として2番目の カウント' の補完 (` の後に表示されます)=') は '1'、 `2',
と `3'。 の _値 関数は、次のように区切られたこれらの値のリストを完成させます。
カンマ。

いいね _引数、この関数は別のコンテキスト名コンポーネントを一時的に追加します。
実行中の現在のコンテキストの引数要素 (XNUMX 番目)
アクション。 ここで、この名前は引数の対象となる値の名前です。
完了しました。

スタイル 詳細 値の説明が正しいかどうかを決定するために使用されます (ただし、そうではありません)。
引数のもの) を出力する必要があります。

連想配列 val_args 値とその引数を報告するために使用されます。 これ
と同様に機能します opt_args によって使用される連想配列 _引数。 従って
関数呼び出し _値 ローカルパラメータを宣言する必要があります 状態, 状態説明,
ライン, コンテキスト   val_args:

ローカル コンテキスト 状態 状態説明 ライン
タイプセット -A val_args

` という形式のアクションを使用する場合->string'。 この機能により、 コンテキスト
パラメータは、引数が完了する値の名前に設定されます。
に注意してください _値 状態   状態説明 配列ではなくスカラーです。
単一の一致する状態のみが返されます。

また注意してください _値 通常、間に区切り文字として使用される文字を追加します。
自動削除可能なサフィックスとしての値 (` に似ています)/' ディレクトリの後に追加します)。 しかし、
これは ` では不可能です->string' 引数に一致するアクションは次のとおりです
呼び出し関数によって生成されます。 通常の動作を取得するには、
関数は区切り文字を追加できます x オプション ` を渡すことでサフィックスとして-qS x' どちらか
直接的または間接的に コンパッド.

オプション -C と同じように扱われます _引数。 その場合、
パラメーター 現在のコンテキスト の代わりにローカルにする必要があります コンテキスト (上記のように)。

_欲しかった [ -x ] [ -C ] [ -12VJ ] タグ 説明 command [ argは ...]
多くのコンテキストでは、補完によって特定の XNUMX つの一致セットのみが生成されます。
通常は単一のタグに対応します。 しかし、それでも決断する必要がある
ユーザーがこのタイプの一致を必要とするかどうか。 こんな時に便利な機能です
場合。

への引数 _欲しかった するものと同じです _リクエスト済み、つまり引数は次のようになります
に渡された _説明。 ただし、この場合、 command はオプションではありません。 全て
タグとタグラベルの両方に対するループを含むタグの処理。
一致の生成は、次のように自動的に実行されます。 _欲しかった.

したがって、タグを XNUMX つだけ提供し、対応する一致をすぐに追加します。
与えられた説明:

ローカル エキスパート
_欲しかった タグ エキスパート '説明' \
コンパッド 一致します...

なお、 _リクエスト済み command するオプションを受け入れることができなければなりません
に受け継がれた コンパッド.

いいね _タグ この機能は、 -C に別の名前を付けるオプション
引数コンテキストフィールド。 の -x オプションはと同じ意味です _説明.

完了 ディレクトリ


ソース配布では、ファイルは次のさまざまなサブディレクトリに含まれています。
完成 ディレクトリ。 それらは同じ構造物または XNUMX つの構造物に設置されている可能性があります。
単一関数のディレクトリ。 以下は、にあるファイルの説明です。
元のディレクトリ構造。 インストールされたファイルを変更したい場合は、次の操作を行う必要があります。
それを、以前に表示されたディレクトリにコピーします。 fpath 標準ディレクトリよりも
それが現れる場所。

ベース(Base) コア機能と特別な補完ウィジェットは自動的にキーにバインドされます。 あなた
これらのほとんどは確かに必要ですが、おそらく変更する必要はありません。
これらの多くは上記に記載されています。

Zsh シェル組み込みコマンドおよびユーティリティ関数の引数を補完する関数
このために。 これらの一部は、 Unixの ディレクトリにあります。

Unixの 外部コマンドおよびコマンドのスイートの引数を完成させるための関数。
システムに合わせて変更が必要になる場合もありますが、多くの場合、何らかの試みは必要になります。
どのバージョンのコマンドが存在するかを判断するために行われます。 たとえば、
  mount コマンドは実行中のシステムを特定しようとしますが、完了するまで
他の多くのユーティリティでは、コマンドの GNU バージョンが
を使用するため、 - 助けて オプションがサポートされています。

X, AIX, BSD、 ...
一部のシステムでのみ使用できるコマンドの補完機能とユーティリティ機能。 これら
階層的に配置されていないため、たとえば、 Linux   Debianの
ディレクトリだけでなく、 X ディレクトリに保存しておくと、システム上で役立つ場合があります。

onworks.net サービスを使用してオンラインで zshcompsys を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad




×
Advertisement
❤️ここでショッピング、予約、購入してください。料金はかかりません。これにより、サービスが無料で維持されます。