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

Posted

技术标签:

【中文标题】如何配置 Mac OS X 术语以使 git 具有颜色? [关闭]【英文标题】:How to configure Mac OS X term so that git has color? [closed] 【发布时间】:2010-11-12 11:12:40 【问题描述】:

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

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

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

【问题讨论】:

除了 superuser.com 仍处于私有测试阶段并且 yinglcs 可能没有访问权限。 除了blog.***.com/2009/07/… 中提到的内容之外,是否还有一些超级用户测试版注册要求? 可能不会,但有多少用户知道呢?并不是说 superuser.com 上有指向该帖子的链接,当迁移问题的用户到达那里时会找到该链接(如果是,我找不到)。 又一个有用的问题结束了。谢天谢地,在一些人能够回答之前。 Git 问题已成为热门话题。 @casperOne 在这里的关闭是错误的,我被投票重新开放。 【参考方案1】:

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

$ git config --global color.ui true

【讨论】:

正是我所需要的。谢谢。 纯粹完美。谢谢先生。 或者你可以在这里查看这个更丰富的选择:gist.github.com/trey/2722934 @yinglcs,已经接受这个答案了,好吗?! 这不起作用【参考方案2】:

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

$ git config --global color.diff true

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

【讨论】:

威廉,是的!这就是我所缺少的。 谢谢,完美!【参考方案3】:

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

【讨论】:

你提到了哪个 .profile 文件? @DarshanPurani,我的意思是说我的 $bash 中的 .profile 文件【参考方案4】:

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

export CLICOLOR=1
export TERM=xterm-color

然后您可以使用LSCOLORS generator 设置一些可以导出的内容,例如:

export LSCOLORS=fxfxcxdxbxegedabagacad

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

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

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

【讨论】:

.bashrc 也可以吗?在我的 Mac 上它是 .bash_profile,我知道它在 Linux 上是 .bashrc,但我认为它在 Mac 上与整个 BSD 的东西不同(LSCOLORS 在 Linux 和 BSD/Mac 上似乎也不同)。 .bashrc 为我工作......是的,它是不同的。 gls 使用 LS_COLORS(也可以使用链接到的页面生成) 谢谢。但是如何在提示或 ls 输出中配置为 'wheat' 、'purple' 之类的颜色呢?或“git diff”输出中的“粉红色”。谢谢。 可能的颜色是您可以在我链接的网站上找到的颜色,它是标准的一部分,当他们定义它时,如果您有一个能够显示 16 种颜色的终端,您会很高兴。 【参考方案5】:

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

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

【讨论】:

请注意,该问题已作为题外话关闭。 :)【参考方案6】:

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

粗体白色。

【讨论】:

以上是关于如何配置 Mac OS X 术语以使 git 具有颜色? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Mac OS X 如何升级系统自带的 Ruby ?

转 mac os x10.8下如何使用git与github

如何在 NSView (Mac OS X) 上显示徽章

text Mac OS X上的Git和凭据

如何在 Mac OS X 中打开具有不同 $HOME 路径的 GUI 应用程序

使用Mac OS X 终端连接Git@Git.oschina.net