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

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

私は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

答え2

完成したzstyleを設定する必要がありますformat

zstyle ':completion:*' format 'Completing %d'

それから:

$プログラム-bTab
私のメッセージを完成させる
XY

info zsh format詳細より。

compinstallこのメニュー選択に従って設定する場合:

3.  Styles for changing the way completions are displayed and inserted.
[...]
1.  Change appearance of completion lists:  allows descriptions of
    completions to appear and sorting of different types of completions.
[...]
1.  Print a message above completion lists describing what is being
    completed.
[...]
You can set a string which is displayed on a line above the list of matches
for completions.  A `%d' in this string will be replaced by a brief
description of the type of completion.  For example, if you set the
string to `Completing %d', and type ^D to show a list of files, the line
`Completing files' will appear above that list.  Enter an empty line to
turn this feature off.  If you enter something which doesn't include `%d',
then `%d' will be appended.  Quotation will be added automatically.

description>

関連情報