Git Color UI支持256色?

时间:2014-02-03 23:00:24

标签: git terminal prompt 256color

我正在尝试使用我的原生XTerm 256调色板为我的Git输出着色。 反正有没有这样做?我似乎无法让它发挥作用。

例如.gitconfig

[color]
  ui = auto
[color 'branch']
  local = colour33
  remote = colour46
  current = colour27

等。
我知道当您指定各种基本颜色术语时,此格式化工作;青色,品红色,黄色和属性;昏暗,明亮,ul,粗体等 但是我找不到任何关于使用256color终端可用的全彩色调色板,而没有实际更改实际托盘中的8个基本颜色条件。
我也找不到文档或联机帮助页中的任何内容 我知道不同的程序似乎使用不同的语法来指定颜色,所以我可能只是使用了错误的语法,或者我是唯一一个曾经想要做这样的事情的人。

我假设git-config只会根据git-config手册页的内容支持那些具有各种属性的基本8种颜色,所以如果这是不可能的,有没有办法改变这些颜色,在终端调色板中只能用于一个程序,就像在这种情况下,Git?也许perl脚本仅在git-config引用它们时导出这些值,但在git-config完成后立即取消它们?

这并不比它的价值太麻烦。我喜欢我在终端中的eyecandy,如果我能找出解释类似内容的资源,我会自己做。

2 个答案:

答案 0 :(得分:7)

颜色的语法是:[fg [bg]] [attr]...

对于颜色,您可以使用命名的(正常,黑色,红色,绿色,黄色,蓝色,品红色,青色和白色)或只是一个数字没有任何前缀。

支持的属性包括:粗体,暗淡,ul,闪烁和反转。

所以你的配置看起来像这样(用git 1.8.5.3测试):

[color "branch"]
    local = 33 
    remote = 46
    current = 27

我已查看git source code以找到答案。

答案 1 :(得分:4)

请注意:


  • 对颜色的支持现已记录(2015年1月,Git 2.2.2,commit 0edad17):
  

docs:描述ANSI 256色模式

     

我们的颜色规格多年来一直支持256色ANSI扩展,但我们从未记录过它。

git config man page现在包括:

  

颜色(前景和背景)也可以作为0到255之间的数字给出;
  这些使用ANSI 256-color mode(但请注意,并非所有终端都支持此功能)


config:修复“git config --get-color some.key -1

的解析
  

大多数git-config的命令行选项使用OPT_BIT来选择一个动作,然后以依赖于上下文的方式解析非选项参数。但是,--get-color--get-colorbool与其他选项不同,因为它们是OPT_STRING,将选项名称作为参数。

     

这通常有效,因为我们然后使用这些字符串的存在来设置动作位。但它确实意味着选项解析器将继续在键之后查找选项(因为它不是非选项;它是选项的参数)。跑步:

git config --get-color some.key -1
  

(使用“-1”作为默认颜色规格)barf,声称“-1”不是一个选项。
  相反,我们应该将--get-color--get-colorbool视为操作位,就像--add--get和所有其他操作一样,然后检查我们的非选项参数得到了理智   这修复了上面的怪异,并使这两个选项像所有其他选项一样。

     

This "fixes" a test in t/t4026-color.sh,检查将“-2”作为颜色投放失败(确实失败了,但在此补丁之前,因为parseopt禁止了,不是因为我们实际上曾尝试解析颜色。)

     

这也会捕获其他错误,例如:

git config --get-color some.key black blue
  

以前默默地忽略了“blue(现在会抱怨你提供了太多参数)。

     

但有一些可能的回归   我们现在不允许这些,目前正在做你期望的事情

  # specifying other options after the action
  git config --get-color some.key --file whatever

  # using long-arg syntax
  git config --get-color=some.key

如果256种颜色不够,可以导入更多颜色 见commit 17a4be2(Git 2。3。0,2015年第1季度)

  

parse_color:支持24位RGB值

     

某些终端(如XTerm)使用常规ANSI颜色方案的扩展,允许完整的24位RGB颜色规格。   让我们允许用户指定十六进制RGB颜色,启用粉红色参考装饰的最重要功能

git log --format="%h%C(#ff69b4)%d%C(reset) %s"