OSX El Capitan 终端/.bash_profile 颜色错误
OSX El Capitan terminal/.bash_profile color bug
我最近更新到 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 目录的 "working" 分支上。任何不在 github 上的东西看起来都很正常。
Downloads:>
截至目前,我已经切换到 iTerm,它似乎没有最新版本的问题(已更新以适应 El Capitan)。让我认为这是一个终端问题,而不是 github。
将所有这些设置为默认终端颜色可能是最简单的。该转义序列在您的终端示例中似乎正常工作:
# 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 "3[32m This will appear green on most terminals\n"
printf "3[31m This will appear red on most terminals\n"
我发现 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
那么无论你想要什么颜色,你都知道在'tput 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) :> "'
这似乎也修复了我的路径名颜色。 :)
我最近更新到 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 目录的 "working" 分支上。任何不在 github 上的东西看起来都很正常。
Downloads:>
截至目前,我已经切换到 iTerm,它似乎没有最新版本的问题(已更新以适应 El Capitan)。让我认为这是一个终端问题,而不是 github。
将所有这些设置为默认终端颜色可能是最简单的。该转义序列在您的终端示例中似乎正常工作:
# 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
:
printf "3[32m This will appear green on most terminals\n"
printf "3[31m This will appear red on most terminals\n"
我发现 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
那么无论你想要什么颜色,你都知道在'tput 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) :> "'
这似乎也修复了我的路径名颜色。 :)