有没有办法在Windows 7的Powershell中为Mercurial启用颜色支持? ColorExtension页面说要添加
[color]
mode = win32
到您的.hgrc
文件,但似乎没有什么区别。
运行hg status
会显示几个尚未添加到存储库的文件,我相信它们应该是粉红色(基于我见过的其他终端)。这就是显示的内容:
←[0;35;1;4m? samplefile.php←[0m
←[0;35;1;4m? anotherfile.php←[0m
←[0;35;1;4m? derpderp.xml←[0m
←[0;35;1;4m? derp_model.php←[0m
←[0;35;1;4m? stillnocolor.php←[0m
答案 0 :(得分:15)
您可能需要更新到最新的mercurial(1.6.4)。版本1.5.4特别没有正确地执行win32颜色(并且在最近的版本中已经修复了很多与颜色相关且与win32相关的错误。)
您还需要确保未指定ANSI颜色模式。你可以强制win32:
[color]
mode = win32
答案 1 :(得分:4)
您是否也确保启用ColorExtension?你在.hgrc中也需要这个:
[extensions]
color =
如果那也是你可以确保你的设置被拿起:
hg --debug showconfig
答案 2 :(得分:0)
ColorExtension
在PowerShell中无效,请参阅https://www.mercurial-scm.org/pipermail/mercurial-devel/2013-November/054620.html:
使用Windows PowerShell时,颜色不起作用(虽然它与
cmd.exe
完全正常)。虽然被调用,但在PowerShell中运行时
_kernel32.SetConsoleTextAttribute
无效。
这是Mercurial bug 4093,已被解决为“无法修复”。一种解决方法是使用ansicon。有关详细信息,请参阅this答案。