我试图使用本机XTERM 256调色板为我的git输出进行着色。无论如何要这样做?我似乎无法使它工作。
例如在.gitconfig
中。
[color]
ui = auto
[color 'branch']
local = colour33
remote = colour46
current = colour27
等。
当您指定各种基本颜色术语时,我知道这种格式有效;青色,洋红色,黄色和属性;昏暗,明亮,UL,大胆等。
但是我只是在使用256色终端可用的完整调色板方面找不到任何东西,而没有实际在实际的pallete中更改8个基本颜色术语。
我可以找到的文档或手册中没有任何东西。
我知道不同的程序似乎使用不同的语法来指定颜色,因此我可能只是使用错误的语法,或者我是唯一一个想做这种事情的人。
我假设git-config
只会根据git-config
MAN页面所说的各种属性支持那些基本的8种颜色,因此,如果不可能,是否可以在终端调色板中改变这些颜色对于一个程序,例如在这种情况下,git?也许只有在git-config
引用它们时才导出这些值的Perl脚本,但是在git-config
完成后会尽快将它们提交?
,这并不比它的价值太多。我爱我的眼球终端,如果我能找出一种解释类似物品的资源,我会自己做。
颜色的语法是: [fg [bg]] [attr]...
至于颜色,您可以使用命名(正常,黑色,红色,绿色,绿色,黄色,蓝色,蓝色,洋红色和白色)或只是一个数字没有任何前缀。
受支持的属性是:大胆,昏暗,UL,眨眼和反向。
因此您的配置看起来像这样(用GIT 1.8.5.3进行了测试):
[color "branch"]
local = 33
remote = 46
current = 27
我已经查看了git源代码以找到答案。
请注意:
- 对颜色的支持为现在已记录为(2015年1月,git 2.2.2,commits 0edad17):
文档:描述ANSI 256色模式
我们的颜色规格多年来一直支持256色ANSI扩展,但我们从未记录过。
git config
MAN页面现在包括:
颜色(前景和背景)也可以作为0到255之间的数字;
这些使用ANSI 256色模式(但请注意,并非所有终端都可以支持此)
- 使用GIT 2.2.2(2015年1月)使用颜色的数值将更加健壮。
请参阅Jeff King(peff
)的COMMIT D0E08D6:
配置:修复" 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 barf,声称"-1
"不是选项。
相反,我们应该将--get-color
和--get-colorbool
视为动作位,就像--add
,--get
和所有其他操作一样,然后检查我们获得的非选项参数是否是理智的。
这修复了上面的怪异,并像其他所有方面一样使这两个选择。此"修复"
t/t4026-color.sh
中的测试,该测试检查了"-2
"作为颜色的喂食应该失败(它确实失败了,但是在此补丁之前,因为parseopt
barfed,不是因为我们实际上是因为我们实际上是因为我们实际上是因为我们实际上是因为我们实际上是因为我们实际上是因为我们实际上是因为我们实际曾经尝试解析颜色)。这也捕获其他错误,例如:
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,Q1 2015)
parse_color
:支持24位RGB值一些终端(例如xterm)允许使用常规ANSI配色方案扩展到完整的24位RGB颜色规格。
让我们允许用户指定HEX RGB颜色,启用Hot Pink Ref Decoriations的最重要功能:
git log --format="%h%C(#ff69b4)%d%C(reset) %s"