環境変数の値に基づいて zsh プロンプトの書式を指定します。

環境変数の値に基づいて zsh プロンプトの書式を指定します。

tmuxセッションにあるかどうかによって、zshプロンプトの色が変わりたいと思います。 Bashでは$ TMUXの値を調べることでこれを行うことができますが、zshはそれに対応する方法を見つけることができません。 zshでこれは可能ですか?

ベストアンサー1

zshではprompt_substオプションデフォルトではオフになっています。プロンプトで変数置換を有効にするには、これをオンにします。

setopt prompt_subst
PS1='$foo'

しかし$TMUX、これは必要ありません。この値はセッション中に変更されないため、PS1シェルの起動時に初期化できます。

setopt prompt_subst
if (($+TMUX)); then
  PS1='[tmux:${TMUX_PANE//\%/%%}] %# '
else
  PS1='[not tmux] %# '
fi

気づく急速な拡張変数置換後に発生するため、変数値のパーセント記号を保護する必要があります。

おすすめ記事