如何配置Mac OS X术语以便git有颜色?

时间:2009-07-20 21:31:41

标签: macos git command-line-interface

我在网上看过一个Mac OS X git demo,它配置了多种颜色。

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

您能告诉我如何配置Mac OS X终端来实现这一目标吗?它绝对是Mac OS X Terminal.app,而不是iTerm。

6 个答案:

答案 0 :(得分:385)

William Purcell's answer仅为'git diff'命令启用颜色。这样做是为所有git命令启用颜色:

$ git config --global color.ui true

答案 1 :(得分:56)

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

$ git config --global color.diff true

正确设置$ HOME / .gitconfig。

答案 2 :(得分:11)

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

export CLICOLOR=1
export TERM=xterm-color

然后,您可以使用LSCOLORS generator设置可以使用以下内容导出的内容:

export LSCOLORS=fxfxcxdxbxegedabagacad

(上面应该给你紫色的目录)

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

编辑:此外,在您的终端中,请确保选中“显示ANSI颜色”复选框(在“文本”页面上)。

答案 3 :(得分:10)

这是我在.profile文件中使用的内容。像魅力一样工作,因为它允许我通过颜色看到当前的git分支以及它的状态。 如果您想修改它,请注意escape color codes对于避免长行中的换行问题非常重要。

# 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}\]$ '

答案 4 :(得分:0)

对于有色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%

用粗体白色。

答案 5 :(得分:0)

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

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