oh-my-zsh テーマの色が正しくレンダリングされません。

oh-my-zsh テーマの色が正しくレンダリングされません。

oh-my-zshテーマに色を使用しようとしています。私の家のコンピュータ(ubuntu)ではうまく機能しますが、職場のコンピュータ(Scientific Linux、つまりEnterprise Linux)ではプロンプトの色が実際に表示されます。たとえば、Blinkテーマを使用するプロンプトは次のとおりです(これはコードではなく、私が置き換えたユーザー名とコンピュータ名を除いて私のプロンプトです)。

{black}{green}USRENAME{blue}@{cyan}COMPUTERNAME{green}
{yellow}{black}~{green} {black}{blue}±{black} %                       
!{cyan}1128

点滅するプロンプトがどのように表示されるかについては、以下を参照してください。 oh-my-zshテーマページ

ベストアンサー1

zsh使用しているバージョンは、%Fカラーエスケープシーケンスが追加される前である可能性が高いです。これは、プロンプトを正しくカラー化しないだけでなく、シーケンスのパラメータも残すことを意味します。この問題を解決するには、現在のテーマファイルを次のように置き換える必要があります。

function _prompt_char() {
  if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
    echo "±%{%b%}"
  else
    echo ' '
  fi
}

ZSH_THEME_GIT_PROMPT_PREFIX=" [%{%B%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{%b%B%}]"
ZSH_THEME_GIT_PROMPT_DIRTY=" *%{%b%}"
ZSH_THEME_GIT_PROMPT_CLEAN=""

PROMPT='%{%b%}
%{%B%}%n%{%B%}@%{%B%}%m%{%B%} %{%b%}%~%{%B%}$(git_prompt_info)%E%{%b%}
%{%}$(_prompt_char)%{%} %#%{%b%} '

RPROMPT='!%{%B%}%!%{%b%}'

おすすめ記事