我试图在iTerm 2.1.4中运行Vim的Mac上使用Apprentice colorscheme。
我的TERM
设置为xterm-256color
。然而,colorscheme并不像网站所说的那样。特别是,该网站的图像显示了我的确切配置应该是什么背景颜色:
但我的看起来像这样:
背景颜色的差异很明显且太亮。我查看hi Normal
只是为了确保背景设置正确,看起来似乎是这样。将图像放在Photoshop中,我的背景颜色不是#262626,因为它应该是#333333。
非常有趣的是,如果我在Terminal.app中运行Vim,背景颜色会很好。所以我认为这是一个iTerm问题。
关于可能出错的任何指示?
答案 0 :(得分:4)
我是学徒的作者。我也使用iTerm,我也必须每天都面对这个问题。
这是iTerm中的色彩空间问题,会影响每个“256color”colorscheme。
Apprentice中用于“256color”终端的颜色取自the semi-standard xterm palette,它将索引235
(背景颜色)映射到十六进制值#262626
或rgb(38, 38, 38)
。
正如您已经注意到的,iTerm将该颜色转换为明显更亮的#333233
(或rgb(50,51,50)
)。它实际上与其他颜色执行相同的转换,但由于样本大小(较大的平坦区域与几个消除锯齿的像素)而不太明显。
在用于另一个颜色空间设备RGB
之前,颜色是在一个颜色空间 Generic RGB 中定义的。Generic RGB --> #262626 = rgb(38,38,38)
(conversion)
Device RGB --> #333233 = rgb(50,51,50)
非常哑,并且... AFAIK无法强制终端仿真器使用一个空间而不是另一个空间。
在colorscheme级别有一个“简单”的解决方法,即使用不同的值转换为iTerm所需的仅。我很长时间没有这样做,但是这个问题显然影响了其他人,所以我别无选择,只能把它放在我的TODO名单上。
你可以open an issue吗?
---编辑---
我只是推动了一个看似有效的解决方案。请试一试,让我知道它对你有用。
---已结束---