Vim 颜色与终端颜色冲突

Vim 颜色与终端颜色冲突

对于大多数 vim 颜色方案,当我在 xterm 中打开 vim 时,它们看起来与广告中的不同。

我一直在使用xterm-256colorset t_Co=256

当我使用 xfce-terminal 时,也会发生类似的情况,但颜色方案中的颜色会根据我在终端的首选项菜单中设置的颜色而变化。我读过一些颜色方案将依赖于终端颜色,这似乎就是这里发生的情况。

有没有办法防止vim配色方案与终端配色方案冲突?

答案1

除非您在某些终端中使用对完整 RBG 颜色的大部分实验性支持,否则您只能使用终端提供的索引 256 调色板。您是对的,终端所使用的确切颜色可能会略有偏差,这一点会很明显。如果你完全重新分配颜色(将红色变成蓝色等),Vim 中没有任何东西可以纠正这个问题,因为 Vim 会无知地请求“索引 #42 处的颜色”。


如果差异仅在于基本的 16 种颜色,并且调色板的其余部分是正确的你使用带有 GUI 和 cterm 定义的颜色方案,你可以通过像这样的插件来解决这个问题近似值cterm,它采用 GUI 颜色定义并将其转换为与高颜色终端紧密匹配的 256 色调色板。


另一种方法是采用精确性,它修改(支持的)终端的调色板以完全匹配 Vim 的 GUI 颜色。如果您的终端受支持,那么可能值得一试。

答案2

你可以尝试我的 mac 上的 ~/.vimrc 文件设置:

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Colors and Fonts
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
syntax enable

colorscheme desert
set background=dark

" Set extra options when running in GUI mode
if has("gui_running")
    set guioptions-=T
    set guioptions+=e
    set t_Co=256
    set guitablabel=%M\ %t
endif

" Set utf8 as standard encoding and en_US as the standard language
set encoding=utf8

" Use Unix as the standard file type
set ffs=unix,dos,mac

相关内容