我最近更新了El Capitan,我一直看到终端的一些问题,我把它缩小到我的.bash_profile。我在.bash_profile中有这个,所以提示会根据git的变化改变颜色。
# A more colorful prompt
# \[\e[0m\] resets the color to default color
c_reset='\[\e[0m\]'
# \e[0;31m\ sets the color to red
c_path='\[\e[0;31m\]'
# \e[0;32m\ sets the color to green
c_git_clean='\[\e[0;32m\]'
# \e[0;31m\ sets the color to red
c_git_dirty='\[\e[0;31m\]'
它正在使用OSX Yosemite的最新更新。另外,据我所知,颜色代码是正确的。但是,这就是我的终端出现的方式:
github.io [\[\e[0;31m\]working\[\e[0m\]]:>
如您所见,我在github目录的“工作”分支上。任何不在github上的东西看似正常。
Downloads:>
截至目前,我已切换到iTerm,这似乎没有最新版本的问题(更新以适应El Capitan)。让我认为这是一个终极问题,而不是github。
答案 0 :(得分:1)
我发现tput setaf
对我来说效果很好。文档here.
# A more colorful prompt
# \[\e[0m\] resets the color to default color
c_reset=$(tput setaf 0)
# \e[0;31m\ sets the color to purple
c_path=$(tput setaf 55)
# \e[0;32m\ sets the color to green
c_git_clean=$(tput setaf 2)
# \e[0;31m\ sets the color to red
c_git_dirty=$(tput setaf 9)
要查看所有颜色,我运行了该文档中的一个脚本:
for C in {0..255}; do
tput setaf $C
echo -n "$C "
done
tput sgr0
echo
然后,无论您想要什么颜色,您都知道在输入setaf'
之后插入的数字旁注:看起来我们有相同的bash_profile源。我还发现升级到El Capitan打破了它。您还可以通过在此行的中间添加分号来修复路径颜色:
# PS1 is the variable for the prompt you see everytime you hit enter
PROMPT_COMMAND=$PROMPT_COMMAND'; PS1="${c_path}\W${c_reset}$(git_prompt) :> "'
这似乎也修复了我的路径名颜色。 :)
答案 1 :(得分:0)
将所有这些设置为默认的终端颜色可能是最简单的。该转义序列似乎在您的终端示例中正常工作:
# A more colorful prompt
# \[\e[0m\] resets the color to default color
c_reset='\[\e[0m\]'
# \e[0;31m\ sets the color to red
c_path='\[\e[0m\]'
# \e[0;32m\ sets the color to green
c_git_clean='\[\e[0m\]'
# \e[0;31m\ sets the color to red
c_git_dirty='\[\e[0m\]'
如果这不起作用。看看你是否有权访问tput
并获得所需的颜色。或者最后你可以尝试使用ANSI转义序列
也许尝试使用printf
在终端中试验ANSI转义序列:
printf "\033[32m This will appear green on most terminals\n"
printf "\033[31m This will appear red on most terminals\n"