私は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
一致の上に表示される文字列として扱われます。format
descriptions
スタイルはユーザーが設定するものです。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>