oh-my-zsh 主题中的颜色未正确渲染

oh-my-zsh 主题中的颜色未正确渲染

我正在尝试在 oh-my-zsh 主题中使用颜色。它在我的家用计算机(ubuntu)上运行良好,但在工作计算机(Scientific Linux 即 Enterprise Linux)中,提示颜色实际上是拼写出来的。例如,我使用眨眼主题的提示看起来像这样(注意这不是代码,这是我的提示,除了我替换的用户名和计算机名)。

{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%}'

相关内容