Cmder 在 WSL 下改变 Vim 的颜色

Cmder changes Vim's colors under WSL

我在 WSL (Ubuntu) 下使用 Vim 并且我安装了 Cmder 以支持 unicode。
另外,我为 Vim 下载了 codedark 配色方案,在 CMD 下它完美运行:

但是用Cmder打开,结果是这样的:

如你所见,颜色不一样。

在 Cmder 中,我在设置中选择了 Monokai 作为我的配色方案,如果我将其更改为其他内容,它也会更改 Vim 的配色方案。

为什么 Vim 打开时不覆盖这些设置?
如何让 Vim 在任何控制台下使用相同的配色方案?

Why doesn't Vim override those settings when its on?

不允许控制台应用程序(例如 Vim)直接访问 OS 图形 API。相反,它与终端 (Cmder) 对话,后者又与 OS.

对话

你的屏幕有 24 位颜色(1600 万),但 Cmder 只提供 Vim 8 位(256 色)。因此,Vim 只能从 Cmder 的 调色板 中的 256 indexes 中进行选择,即一些预selected 颜色的子集(当您在终端中选择颜色方案时,您实际上是在该调色板中 select 颜色)。由于这些颜色或多或少与原始的 codedark 方案不同,因此生成的图片看起来也不同。

How can I make Vim use the same colorscheme under any console?

确保您的终端提供合适的调色板。或者将终端和 Vim 都切换到 TrueColor 模式。对于 Vim,它需要设置选项 termguicolors on。对于Cmder,我不太确定,但是Cmder基于的ConEmu支持TrueColor,所以你可以试试