如何配置Mac OS X术语以使git带有颜色?[关闭]


200

我在线上观看了Mac OS X git演示,其中将其配置为具有多种颜色。

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

您能告诉我如何配置Mac OS X终端吗?绝对是Mac OS X Terminal.app,不是iTerm。


3
除了superuser.com仍处于私人Beta版和yinglcs可能没有访问权限之外。
弗雷德里克

除了blog.stackoverflow.com/2009/07/…上提到的内容外,还有一些超级用户beta注册要求吗?
las3rjock

3
可能不是,但是有多少用户对此有所了解?就像在superuser.com上没有该帖子的链接一样,遇到问题的用户将在到达那里时找到它(如果是,我找不到)。
弗雷德里克

3
另一个有用的问题结束了。值得庆幸的是,在某些人无法回答之前。
Ben Thurley

1
到现在为止,Git问题已成为话题。@casperOne在这里的关闭是错误的,我投票决定重新打开。
Mark Amery

Answers:



57

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

$ git config --global color.diff true

适当地设置$ HOME / .gitconfig。


威廉,是的!这就是我所缺少的。
avernet

谢谢,它很完美!
antiqe

13

通常,您不应该配置终端来执行此操作...终端不知道其显示的内容,但是可以在您的shell中进行尝试(如果您使用的是bash,则在其他一些shell中,您不导出而是调用setenv或其他):

export CLICOLOR=1
export TERM=xterm-color

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

export LSCOLORS=fxfxcxdxbxegedabagacad

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

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

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


.bashrc也可以吗?在我的Mac上,它是.bash_profile,我知道它在Linux上是.bashrc,但我发现它与整个BSD东西在mac上是不同的(而且LSCOLORS在Linux和BSD / Mac上也有所不同)。
豪尔赫·以色列·佩尼亚

.bashrc为我工作...是的,这是不同的。gls使用LS_COLORS(也可以使用链接到的页面生成)
Fredrik

谢谢。但是,如何在提示或ls输出中将颜色配置为“小麦”,“紫色”呢?或“ git diff”输出中的“ pink”。谢谢。
yinglcs

可能的颜色是您在我链接的站点上可以找到的颜色,它是标准的一部分,当他们定义颜色时,如果您的终端能够显示16种颜色,您会感到很高兴。
Fredrik

13

这就是我在.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}\]$ '

您提到了哪个.profile文件?
Darshan Puranik '16

@DarshanPurani,我的意思是说.profile我的$ bash中的文件
Marc M

2

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

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


请注意,该问题已作为主题关闭。:)
Ryan Kohn

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%

粗体为白色。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.