205

我在网上看到了一个 Mac OS X git 演示,它被配置为具有多种颜色。

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

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

4

6 回答 6

399

William Purcell 的回答只为“git diff”命令启用颜色。这样做可以为所有 git 命令启用颜色:

$ git config --global color.ui true
于 2011-07-14T22:00:11.673 回答
58

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

$ git config --global color.diff true

适当地设置你的 $HOME/.gitconfig 。

于 2009-07-27T00:07:58.550 回答
15

这就是我在 .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}\]$ '
于 2011-04-28T15:32:14.397 回答
13

这通常不是您配置终端要执行的操作...终端不知道它正在显示什么,但请在您的 shell 中尝试此操作(如果您使用的是 bash,在其他一些不导出但调用 setenv 的 shell 中或别的东西):

export CLICOLOR=1
export TERM=xterm-color

然后,您可以使用LSCOLORS 生成器来设置您可以使用以下内容导出的内容:

export LSCOLORS=fxfxcxdxbxegedabagacad

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

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

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

于 2009-07-20T21:47:38.653 回答
2

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

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

于 2012-02-13T21:06:16.410 回答
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%

粗体白色。

于 2009-07-20T23:02:46.520 回答