As cores não são renderizadas corretamente em temas doh-my-zsh

1

Estou tentando usar cores em temas doh-my-zsh. Ele funciona bem no meu computador doméstico (Ubuntu), mas em um computador de trabalho (Scientific Linux, por exemplo, o Enterprise Linux), as cores do prompt são realmente explicitadas. Por exemplo, meu prompt usando o tema blinks fica assim (note que este NÃO é o código, isso é o que aparece como meu prompt, exceto meu nome de usuário e nome de computador que eu substituí).

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

Para ver como deve ser o aviso de intermitência, pode ver o página de temas do oh-my-zsh .

    
por Caleb 08.08.2012 / 19:38

1 resposta

1

O mais provável é que a versão de zsh que você está usando seja anterior à adição da sequência de escape de cores %F . Isso significa que, além de não colorir o prompt corretamente, ele deixará os argumentos para essa sequência por aí. Para resolver isso, você deve substituir o arquivo de tema atual por:

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%}'
    
por 10.08.2012 / 00:42