formatting - 我可以向 mercurial 命令模板添加自定义颜色吗?

我想为 hg log 使用自定义模板,如下所示:

hg log --template '{node|short} {desc} [{date|age} by {author}]\'n --color=always

这在默认终端颜色不是很可读,所以例如我想将节点设为红色和 desc 绿色。我怎样才能做到这一点?在 git 中,我可以像这样定义这种格式:

git log --pretty=format:'%Cred%h%Creset %Cgreen%s%Creset [%ar by %an]'

在 mercurial 中是否可能发生类似的事情?

最佳答案

截至 2013 年,Mercurial 直接支持 colors on templates .您也可以在 hg 帮助模板上查看。

您必须在 .hgrc 上激活颜色扩展:

[extensions]
color =

然后添加一些自定义标签以供以后在模板上使用:

[color]
custom.rev = yellow
custom.author = bold

然后使用引用标签的模板(使用 {label('labelname',field)} 而不是 {field}:

hg log --template "{label('custom.rev',node|short)}  {desc}  [{date|age} by {label('custom.author',author)}]\n"

上面的示例以黄色突出显示节点(修订),以粗体蓝色突出提交的作者。与往常一样,您可以在 .hgrc 上创建别名:

[alias]
customlog = log --template "{label('custom.rev',node|short)}  {desc}  [{date|age} by {label('custom.author',author)}]\n"

更新:测试版本 2.5.4。 根据changelog , 这个 works since version 2.5 .

https://stackoverflow.com/questions/3625725/

相关文章:

c# - 将 TimeSpan 格式化为 mm :ss for positive and negat

javascript - 如何在 JavaScript 中为数字添加千位分隔符?

c++ - 如何将小数点分隔符设置为逗号?

javascript - 使用 1.5K、1M、1G 等公制前缀格式化 javascript 数字

c - printf中的 "%.6d"是什么意思

emacs - Emacs 中的 LaTeX 缩进(格式化)

php - 将价格格式化为逗号分隔

r - 增加 R 中箱线图名称的大小

java - 自动将大括号添加到 java 代码库中的所有 if/else/for/while 等

latex - 如何更改 Latex 中图形的标题?