为什么当我使用它们时,绝大多数vim颜色scheme看起来不像屏幕截图?

我已经下载了许多vim色彩模式,并试用了它们,但其中很多不像官方的屏幕截图。

例如,Vim自己的颜色模式 – desert应该是这样的: 沙漠色彩图式

但在我的vim中,许多颜色不会显示,例如背景。 我的vim彩色显示

但一些颜色模式正常工作。

这是为什么?

在:编辑 – >configuration文件首选项 – >颜色,我select“使用系统主题颜色”

许多颜色scheme都是为256色而devise的,比标准的8色terminal要好得多。 要做到这一点,你需要$TERM设置为一个256色terminal,如xterm-256color

如果你有一个256色的terminal(如果你的屏幕截图是Gnometerminal的话,看起来就像你做的那样),把$TERM设置为xterm-256color并在你的vimrc中启用256种颜色,例如:

 if $TERM == "xterm-256color" set t_Co=256 endif 

Vim wiki有一些关于为不同的terminal模拟器设置正确的$TERM 提示 。 快速testing这个最简单的方法是做

 TERM=xterm-256color vim 

这不会使GUI vimdevise的颜色scheme与terminalVim完全兼容,但是会使256色颜色scheme起作用,而这对于标准的8色配色scheme是一个巨大的改进。

在* nix系统上,将$ TERM环境variables设置为描述terminalfunction( 包括所支持的颜色数量)的 terminfo条目的目的是将这些function广告给terminal内运行的应用程序。

换句话说,你设置这个variables的原因首先是告诉Vim(或者mutt .. slrn .. ELinks等等)..嘿..其他的东西..我支持256种颜色,你知道吗..?

因此,为了设置t_Co Vimvariables的值,在vimrc中添加bloat来testing$ TERM的值是毫无意义的。 Vim足够聪明,可以从$ TERMvariables指向的terminfo条目中获取支持的颜色数量。 这就是为什么你把它放在第一位!

在这方面,terminal/控制台Vim简单地遵循* nix模型,并从terminfo条目中确定terminal的能力,并自动设置t_Covariables的内容。

在GNU / linux环境中尝试并testing了15种不同的terminal仿真。

第一个截图是GVim,而不是terminalVim。 颜色支持terminal是非常有限的。 而GVim可以使用完整的RGB空间。

这里的其他答案是好的; 我也发现这个页面对调整和理解vim的原因和颜色环境是非常有用的。