zsh print -Pで展開されていない色

zsh print -Pで展開されていない色

プロンプト拡張を実行するzshプロンプトスクリプトがありますprint -P。 SSH経由で接続された特定のリモートシステムでは、スクリプトは正しく機能しません。ヒント:印刷コマンドのカラーディレクティブは拡張されません。

$ print -P '%F{blue}this should be blue'
{blue} this should be blue

解決策はありますか?ディスプレイは私のローカル端末エミュレータ(iTerm2)を介して行われているので、リモートシステムを使用することがなぜ重要なのかわかりません。

答え1

問題は、バージョンがzsh4.3.6であることです。 ~によるとリリースノート%Fヒントの色拡張機能は5.0まで追加されていません(ここのリリースノートは100%明確ではありませんが、いずれにせよヒント拡張文書を含む4.3.6マンページ%Fにはありません)。zshmisc混乱していても、%Fフォーマット文字列から削除されます(何もしません)。パラメータ(カラー名または中括弧内の数字)だけは影響を受けません。%F{color}プロンプト形式の文字列の文字列を次に置き換えることでこれを行うことができました。ANSIエスケープコード(例:と%F{blue}に変更、色をリセット、に変更)\e[34m%f\e[0m

関連情報