繁体   English   中英

为什么OS X上的终端VIM中的256色调色板会发生变化?

[英]Why does the 256-color palette change in terminal VIM on OS X?

我一直在玩终端VIM的配色方案,并且发现了令我感到非常沮丧的事情,到目前为止我一直无法解决。

我希望16种系统颜色能够改变。 它们显然是可配置的。 出于这个原因,我试图使用256色调色板来构建一个VIM颜色方案,无论终端的16(可配置)系统调色板如何,它都是相同的。

我只使用了256色调色板中的颜色,包括背景。 但是,我注意到如果我打开具有为终端指定的不同背景和文本颜色的终端,则两个终端中的VIM颜色方案看起来完全不同。

即使终端具有不同的背景,前景和系统调色板,我也没有在Ubuntu上看到类似的行为。

我很乐意接受一个解释为什么会发生这种情况的答案。

如果有人能告诉我解决方法,除了为我想要使用的每组颜色设置设置一个特定的终端,我都会欣喜若狂。

默认情况下,ANSI终端是16种颜色设备,在gvim中工作的Vim颜色方案在终端中无法正常工作。

一些终端能够88或256色。 你可以通过设置t_Co来告诉Vim。 当然,256种颜色仍然比gvim RGB颜色还要小。

有一个名为CSApprox vim包由Matt Wozniski开发。 它允许您使用具有近似颜色的gvim颜色方案。

这是我自己使用的。

CSApprox包含一个文档文件,它比我在这里更好地解释了所有内容。

网址: http//www.vim.org/scripts/script.php? script_id = 2390

祝好运。

PS关于你的问题然而,我注意到如果我打开具有为终端指定的不同背景和文本颜色的终端,则两个终端中的VIM颜色方案看起来完全不同。

这听起来像OSX终端没有将颜色定义与256色xterm调色板分开; 即通过操纵它的设置,你正在弄乱调色板或类似的东西。

终端应该保持16色用户可配置的东西与256色调分开。

终端动态调整一些颜色值,以确保与背景颜色的对比度最小。 也许这就是你所看到的。

请附上显示两种不同配色方案的屏幕截图。 查看可用颜色的好脚本是256colors2.pl

256色模式仍然只是一个索引调色板,与8和16色模式相同。 应用程序只是从调色板中按索引选择一种颜色,由终端决定实际的颜色。

两个不同的终端碰巧为这些索引选择相同的颜色可能只是因为在216色RGB立方体中每个组件有6个级别,因此分配这些颜色的“明显”自然方式是从列表( 00x330x660x990xcc0xff )。 我想大多数终端都会这样做,因此在相同的指数上给出相同的颜色。

如果两个终端不同,则只是表明他们正在使用其他方法来选择其实际颜色。

如果您使用的是iTerm2,那么您可能需要更改它所报告的终端类型。

在iTerm2首选项>配置文件>终端>报告终端类型中,设置为xterm-256color

在Terminal.app aka Apple Terminal中,如果未明确设置背景颜色,颜色也会改变。

因此,使用您的配色方案,您必须使用“ Normal颜色组设置默认背景颜色,例如:

hi Normal ctermfg=188 ctermbg=234

然后你不应该看到任何颜色的进一步变化。

注意:我只是注意到前景受到影响可能是因为你不会错过任何重要的输出;)

请发布截图,以便我们看到您看到的内容。 没有看到颜色或比较它们的数值就很难谈论颜色。

好吧,我仍然在10.6.8,所以我从未喜欢Terminal.app能够显示256种颜色。

但是,AFAIK,其默认的16种颜色不是从X11调色板中获取的。 它们可能在某处硬编码,无论如何它们的值都是用户可配置的。 因此,我不知道为什么将默认的Red值更改为任何内容会改变Vim colorscheme的外观。

但是,Terminal.app(与大多数其他终端仿真器一样)允许您更改BackgroundTextBoldSelectionCursor 根据您的colorschemes的编写方式,其中一些设置可能会覆盖您的colorscheme的一部分, Background ,最显着。

我已经将我的Terminal.app背景与我的Vim colorscheme的背景相匹配很长一段时间并取得了很好的效果。 好吧,至少对于16色终端仿真器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM