OS X GNU-Screen打破着色

时间:2012-08-06 05:36:58

标签: bash shell colors terminal gnu-screen

我在Mac OS X上的.bash_profile中定义了颜色,如下所示:

# ls color alias
alias ls='ls -G'

# Colours
export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
BLACK="\[\033[0;30m\]"
DARK_GRAY="\[\033[1;30m\]"
LIGHT_GRAY="\[\033[0;37m\]"
WHITE="\[\033[0;37m\]"
RED="\[\033[0;31m\]"
RED_BOLD="\[\033[1;31m\]"
YELLOW="\[\033[0;33m\]"
YELLOW_BOLD="\[\033[1;33m\]"
GREEN="\[\033[0;32m\]"
GREEN_BOLD="\[\033[1;32m\]"
BLUE="\[\033[0;34m\]"
BLUE_BOLD="\[\033[1;34m\]"
CYAN="\[\033[0;36m\]"
CYAN_BOLD="\[\033[1;36m\]"
PURPLE="\[\033[0;35m\]"
PURPLE_BOLD="\[\033[1;35m\]"
BROWN="\[\033[0;33m\]"

# Terminal colours
export CLICOLOR=1
export XTERM=xterm-color
export LSCOLORS=BxFxCxDxGxegedabagacad

我也注意到当我使用GNU-Screen(总是如此)时,着色非常不同。红色变成黄色,橙色变成黄色,引号之间的任何东西都从紫色变为绿色。这似乎发生在Emacs中,主要是因为Emacs显示各种不同的颜色。

我还有一个ps1提示符,它还在目录中显示我当前的git分支。这不会改变它的颜色。

我的第一个问题是,这些颜色定义在哪里? GNU-Screen为什么以及如何改变颜色?什么是为终端着色的最佳方法?

我的第二个问题是,当我将我的.bash_profile从我的Mac OS X复制到我连接到的CentOS服务器时,颜色不一样。 Mac是否使用与CentOS不同的颜色代码?如果是这样,我如何在两者中标准化我的着色?

1 个答案:

答案 0 :(得分:1)

您的本机终端仿真和屏幕认为它可能与支持的颜色数量不一致。

  • TERM开始前后screen的价值是多少?

  • 在任何一种情况下tput colors的输出是什么?

为服务器和Max OS终端报告这些内容。


感谢你的报道。服务器假设支持更多颜色 OSX终端物理支持。

尝试用TERM=xterm-color推翻CentOS上的TERM,或者从linux上的rc文件/配置文件中删除任何TERM设置,让操作系统从ssh中获取正确的值。