パラメータに関するメッセージはどこに表示されますか?

パラメータに関するメッセージはどこに表示されますか?

私はzsh完成スクリプトを書く方法を学んでいますが、ドキュメントを読んでいる間に_arguments次の部分を見つけました。

n: メッセージ: アクション
n::メッセージ:作業
    n番目の一般パラメータを説明します。これ情報
    生成された一致の上に印刷されます。行動表現する[...]

それはどこですか?情報印刷?以下の最小限の機能を試していますが、理解できません。シェルで特定の機能を有効にする必要がありますか?

function _test {
  _arguments '-a' '-b[description]:my message:(x y)'
}
$ compdef _test program

その結果は次のとおりです。

$ program -b <tab>
x y

ベストアンサー1

どこを見るべきかを知っている場合は、マニュアルに記載されていますが、説明方法を見ると、実際にドキュメントの内容を理解するには答えを知る必要があります。

_argumentsこれを「メッセージ」と呼び、マニュアルでは「説明」と呼びます。だからあなたは確信しています。または、ソースコードを読み、_argumentsこのメッセージが次に渡されていることを知っています。_describe。この機能に関するドキュメントには、次の内容が記載されています。

ラベルにスタイルを指定すると、descr一致の上に表示される文字列として扱われます。formatdescriptions

スタイルはユーザーが設定するものです。zstyle。これ「システム全体の構成」セクション完成スタイルの記録形式:

フィールドは常に順番になっています:completion:function:completer:command:argument:tag

だから電話する必要があります。または、特定の状況でのみこれを行うには、別のものに置き換えます。zstyle ':completion:*:*:*:*:descriptions' format=SOMETHING*

これ文書descriptionsタグ現段階ではあまり役に立ちませんが、文書formatスタイル例:

説明タグにこの値が設定されている場合、その値は上記の一致を完成リストに表示する文字列として使用されます。この文字列のシーケンスは、%dこれらの一致の簡単な説明で置き換えられます。文字列には、以下が理解する一連の出力属性を含めることもできます。compadd -X

よりcompadd文書化は、主に利用可能な急速な拡張を意味します。視覚効果

だから走る

zstyle ':completion:*:*:*:*:descriptions' format '%F{green}%d%f'

完了の上に緑色のメッセージが表示されます。または

zstyle ':completion:*:*:program:*:descriptions' format '%F{green}%d%f'

パラメータが完了した場合にのみ適用したい場合program

おすすめ記事