Zsh

在 oh-my-zsh 主題中未正確呈現顏色

  • June 20, 2016

我正在嘗試在 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 主題頁面

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

引用自:https://unix.stackexchange.com/questions/45072