在 Console2 中运行 vim 无法正确显示颜色

在 Console2 中运行 vim 无法正确显示颜色

所以我目前正在使用控制台2对于我的命令行内容,背景 shell 只是来自cmd.exe窗口。我的问题是,我在 vim 中将主题设置为“暮光”,它在 gVim 中运行正常,但当我通过命令行运行它时,颜色全都乱了。即使我使用默认的 Console2 主题或 Console2 的暮光主题,它们仍然会损坏。

为了说明:这是应该发生的事情: 在此处输入图片描述

但我最终得到的颜色却是这样的: 在此处输入图片描述

出了什么问题?如何解决?

答案1

Windows shell(以及与之相关的控制台2包装器)仅限于16 种颜色而 GVIM 可以使用完整的 24 位 RGB 调色板。因此,即使控制台支持配色方案,通常也存在限制。

你能做到的最好的是使 shell / Console2 的调色板适应所使用的 RGB 颜色(最多 16 种)。配色方案,然后使配色方案中的ctermfg=和条目适应相应的索引。ctermbg=

脚步

在 中colors/twilight.vim,您将找到以下定义:

let s:grey_blue = '#8a9597'
let s:light_grey_blue = '#a0a8b0'
let s:dark_grey_blue = '#34383c'
let s:mid_grey_blue = '#64686c'
let s:beige = '#ceb67f'
let s:light_orange = '#ebc471'
let s:yellow = '#e3d796'
let s:violet = '#a999ac'
let s:green = '#a2a96f'
let s:lightgreen = '#c2c98f'
let s:red = '#d08356'
let s:cyan = '#74dad9'
let s:darkgrey = '#1a1a1a'
let s:grey = '#303030'
let s:lightgrey = '#605958'
let s:white = '#fffedc'

您需要重新定义 Console2 颜色彩色图对那些(最好尝试匹配相似的现有颜色,否则其他程序输出看起来会很奇怪)。

控制台颜色设置

然后,修改colors/twilight.vim脚本,添加彩色终端内容,例如将其

exe 'hi String         guifg='.s:green             .' guibg='.s:darkgrey        .' gui=none'

变成(假设你使用了颜色 #0s:darkgrey和 #10 s:green

exe 'hi String         ctermfg=10 ctermbg=0 guifg='.s:green             .' guibg='.s:darkgrey        .' gui=none'

相关内容