私のツールの1つにカスタムZSHタブ補完機能があります。それはうまくいきますが、ツールが答えるのに時間がかかることがあります。ツールが実行されている間に(そして実行が完了する前に)何かが起こっているという何らかの表示を表示する方法はありますか?カスタムZSHコンプリータの実行中に進捗状況を表示
例えば、それはのように、現在の行の下のメッセージ、表示させることが可能である:
prompt$ pypath /providers/conf<TAB>
Completing...
をここでの課題、私は「TAB」を打つ場所にカーソルが(その前の位置に戻らなければならないということです)完了したら、候補者が利用可能になります。私はZSHがこれを行うことができると知っていますが、ツールが実行を終了する前にメッセージを表示できますか?あなたはzle -R "Completing..."
を使用しようとすることができ
#compdef pypath
# This does not work; it is only added when the whole thing ends
# _message -r "Completing..."
IFS=$'\n' path_candidates=($(pypath "${PREFIX}*" | sed 's|.*/||' | sort -u))
compset -P '*/'
if [ -z "$path_candidates" ]; then
compadd -x "No matches found."
else
compadd -q -S '/' $path_candidates
fi
あなただけの 'プリントを使用しようとしました「完了しています...」' '_message'の代わりに? – Adaephon
はい、それ以降は削除されません。これにより、コンプリータは「完了」の最後にコンプリートを追加します。 – Whyte
その場合、 'print -n 'を試してみてください。完了... \ r"です。 '-n'は改行の印字を防止し、' \ r'はカーソルを改行の先頭に移動します。完了のリストが印刷されると、テキストを上書きする必要があります。 – Adaephon