如何配置Mac OS X术语,使git有颜色?

我在网上看过一个Mac OS X git演示,它被配置成多种颜色。

例如,他的提示符是琥珀色,他的ls目录是紫色,他的git diff输出有~ 4种颜色(粉红色,浅绿色,红色,浅黄色)。

你能告诉我如何配置Mac OS X终端来达到这个目的吗?它绝对是Mac OS X终端。而不是iTerm。

78128 次浏览

这通常不是你配置终端去做的事情…终端不知道它正在显示什么,但是在你的shell中尝试一下(如果你使用bash,在其他一些shell中你不导出而是调用setenv或其他东西):

export CLICOLOR=1
export TERM=xterm-color

然后你可以使用LSCOLORS发电机来设置一些东西,你可以使用如下方式导出:

export LSCOLORS=fxfxcxdxbxegedabagacad

(上面会给你紫色的目录)

当您完成并对结果感到满意时,将这三行添加到用户主目录中的/etc/bashrc或.bashrc文件中。

另外,在您的终端中,确保选中“显示ANSI颜色”(在“文本”页上)复选框。

对于彩色的ls输出,我建议安装gnu coreutils并使用该版本的ls。对于ls的任何一个版本,你都需要传递正确的标志给它,gnu版本是——color,标准OS X版本是-G。你可以这样做

alias ls='ls --color'

在你的。bashrc。

要为提示符上色,您需要为您的终端使用正确的颜色代码,但我使用

PROMPT="$(print '%{\e[0;38m%}%{\e[1;1m%]%}[%m:%c] %n%%%{\e[0m%}') "

生产

[hostname:directory] username%

醒目的白色。

要在git diff的输出中显示颜色,需要配置git。尝试运行

$ git config --global color.diff true

设置$HOME/。gitconfig适当。

这是我在我的.profile文件中使用的。工作就像一个魅力,因为它允许我看到当前的git分支以及它的状态通过颜色。 如果你想修改它,请注意转义颜色代码是很重要的,以避免在长行中换行
# Setting GIT prompt
c_cyan=`tput setaf 6`
c_red=`tput setaf 1`
c_green=`tput setaf 2`
c_sgr0=`tput sgr0`


branch_color ()
{
if git rev-parse --git-dir >/dev/null 2>&1
then
color=""
if git diff --quiet 2>/dev/null >&2
then
color=${c_green}
else
color=${c_red}
fi
else
return 0
fi
echo -n $color
}


parse_git_branch ()
{
if git rev-parse --git-dir >/dev/null 2>&1
then
gitver="["$(git branch 2>/dev/null| sed -n '/^\*/s/^\* //p')"]"
else
return 0
fi
echo -e $gitver
}


#It's important to escape colors with \[ to indicate the length is 0
PS1='\u@\[${c_red}\]\W\[${c_sgr0}\]\[\[$(branch_color)\]$(parse_git_branch)\[${c_sgr0}\]$ '

威廉·珀塞尔的回答仅为'git diff'命令启用颜色。这样做可以为所有git命令启用颜色:

$ git config --global color.ui true

打开终端应用程序,然后通过菜单(terminal -> preferences)或按命令+打开首选项对话框。一旦首选项对话框打开,从左边的窗格中选择终端样式,从按钮栏中选择文本,然后确保选中“显示ANSI颜色”复选框。

这将启用终端上的颜色。要在终端的输出中获得颜色,您需要在发送到终端的数据中嵌入ANSI颜色命令。如何做到这一点取决于命令。例如(如上所示)ls命令有一个颜色选项。对于颜色代码,执行谷歌查找“ansi color”。