我导入了日光化的色彩和调色板。我的终端具有正确的颜色和背景,gvim具有正确的颜色和背景,但是vim的背景颜色不正确。文本完全正确,但是背景似乎是纯黑色。



这是我的.vimrc:

syntax enable

if has('gui_running')
    set background=dark
else
    set background=dark
endif

:set t_Co=256
let g:solarized_termcolors=256
colorscheme solarized


如果有人对可能导致此问题的任何建议,我将非常有义务。我使用默认终端运行xubuntu。

我还应该提到light选项导致Vim的背景非常黄。

评论

“ [m] y终端具有正确的颜色和背景”是指您遵循了有关终端中Vim的特定建议吗?

我确实遵循了建议,@ Andrew。不过谢谢你。

@Oberdiear Andrew链接到的建议解释说,您应该将终端设置为使用日光色,而不要使用g:solarized_termcolors = 256选项。如果您很高兴在终端中使用日光色,则此方法会更好。您的问题文字暗示您已将终端设置为使用日光色(尽管所显示的屏幕截图看起来不像我一样),因此在这种情况下,为什么要使用g:solarized_termcolors = 256设置?

您正在使用哪个终端?我有用于gnome-terminal的脚本。

@Rich,我想我没有正确设置调色板。您(或其他人)知道如何正确设置Xfce Terminal吗?

#1 楼

我认为可能发生这种情况的原因有两个:


您要使用的日晒配色方案并未针对要突出显示的任何功能声明ctermfgctermbg。尝试这种配色方案,在终端和gvim内部看起来应该基本相同,如果是这种情况,那么您可能需要研究使用声明ctermfgctermbg的配色方案。

您可以需要确保终端仿真器支持您尝试显示的颜色:


确保已安装文件ncurses-term软件包(提供文件/usr/share/terminfo/x/xterm+256color)。

通过在外壳上运行

export TERM=xterm+256colors


,在外壳上运行TERM环境变量的值。

然后在该外壳中启动vim
/>



请注意,这两种情况可能同时发生,但是如果没有有关您的系统的更多信息,就很难进行诊断。

评论


desert256工作正常,但我不是一个忠实的粉丝。我确实相信TERM变量是错误的,但是我不知道如何更改它。

–Oberdiear
2015年2月20日,下午3:54

我安装了ncurses-term。然后,我运行了命令。运行它后,所有文本变为灰色,背景为黑色。

–Oberdiear
15年2月20日在5:01

应该输出TERM = xterm + 256color,而不是“ colors”(复数)。另外,我认为应该是xterm-256color,而不是“ ** + ** 256color”;但是我可能特别错误地将其与solarized一起使用。根据此答案,#带有嵌入式加号的条目被设计为通过使用/ tc功能,不用作独立条目。

–爱德华
17/12/21在0:47



在OSX上导出TERM = xterm + 256color我得到zle-line-finish:echoti:1:没有这样的terminfo功能:rmkx

– Xeoncross
18年4月23日在16:15

我遇到了这个确切的问题,导出TERM = xterm + 256colors有助于vim solarized检测和使用终端所具有的确切背景色。

– Shyam Habarakada
18年5月30日在19:10

#2 楼

大家好消息。 @Tom和@Rich使我走上了正确的道路。我在这里找到了解决方案。我将.vimrc设置为简单的

syntax enable
set background=dark
set t_Co=16
colorscheme solarized


这似乎可以解决所有问题。颜色在字体示例中似乎并不那么亮,但这很可能就是我。对于任何想使用Solarized色彩方案并使用xfce4-terminal的用户,只需更改terminalrc和.vimrc似乎都可以解决我的主要问题。感谢大家的帮助!

评论


您不应该在vimrc中需要设置t_Co行:Vim可以从终端读取此值(设置't_Co'似乎有点像Vim的货运狂热:很多在线人士建议这样做,但实际上并没有真正理解他们的问题。正在尝试解决。)

–丰富
16年1月15日在10:50

我只说“ screen”和“ tmux”-这些工具会更改$ TERM变量,因此vim无法读取所需的信息。

– NieDzejkob
17年9月8日15:49

@NieDzejkob您可以使用终端多路复用器,并且仍然具有正确配置的终端。

–丰富
17-10-6在13:14

@Rich,您介意说明终端机的正确解决方法是什么?我将tmux与$ TERM = screen一起使用,并设置t_Co = 16确实可以解决视觉问题,但我想首先了解这种关系。

–雏鸟
20-2-6在5:14

@ffledgling我很乐意。不过,可能需要一些来回的时间,所以请加入我的聊天室。

–丰富
20-2-6在14:52

#3 楼

我想这是此colorscheme与终端的兼容性问题。
插件csaprox奇迹般地解决了许多此类问题。

简介:


很难找到终端Vim的色彩设计。大多数colorchemes编写为仅支持GVim,而在终端Vim中根本不起作用。

该插件使仅GVim的colorchemes可以在终端Vim中正常工作,只要终端支持88或256种颜色,并且大多数时候都可以。该
通常不需要用户交互(但是,请参见帮助以解决
不能正常工作的情况)。成功安装此插件后,任何时候
使用:colorscheme都会发挥作用,并使colorcheme正常工作。


链接到插件:


vim.org
Github


评论


这是一个有用的插件,但在这里无济于事,因为日光化的色彩方案已经在16色和256色终端下的Vim终端中投入了大量精力。

–丰富
2015年2月23日在15:52

#4 楼

日光化的终端-Vim配色方案可以以两种不同方式之一运行。


16种颜色模式:日光化的仅包含16种颜色,因此在此模式下,您可以将终端设置为使用日晒颜色为它的16种颜色,而Vim colorscheme仅使用这些颜色。因此,例如,Vim colorscheme将请求终端颜色“ 1”,并且终端将其显示为十六进制颜色#dc322f。
256色模式,从256种模式中选择最匹配的16种颜色颜色调色板。

作者(和我)强烈建议使用前一种方法,听起来您很高兴使用此方法,因为您声明“终端具有正确的颜色和背景”。

但是,从屏幕快照看来,您的终端没有设置正确的颜色。 (白色不是经过日晒处理的颜色,尽管我没有滴眼液,但是屏幕快照中的其他文本颜色也不像是经过日晒处理的“紫罗兰色”(#6c71c4)。)

如果从vimrc *中删除设置t_Cog:solarized_termcolors的行,并正确配置终端颜色,那么您应该会发现16色日光化配色将开始起作用。

*这些线将日光转换为使用其(不太真实的)256色模式。这也应该起作用((我怀疑@Jubal暗示这里是BCE是正确的)),但是16色模式是可取的,除非您明确不想在终端中使用solarized。

评论


我相信您是完全正确的。我认为我没有正确安装调色板。您能指导我完成此过程吗?感谢您的所有帮助,@ Rich。

–Oberdiear
15年2月23日在18:29

看来您的第一个链接已死。

–́akozi
19年2月12日在22:12

@azoki感谢您告诉我。看起来Solarized网站正在(重建)中。我暂时更改了链接以指向github存储库。

–丰富
19年2月13日在9:32

#5 楼

好像您找到了答案。我有同样的问题,以上均无效果。对我有用的是使用替代品的terminalrc而不是sgerrand的。我的相关vimrc很简单:

syntax enable
set background=dark
colorscheme solarized


希望对别人有帮助!

#6 楼

因此,这就是我的工作方式(在我曾经使用过的所有终端上– xterm,konsole,gnome-terminal,iterm2,roxterm –在Linux和OS X上,以及gvim和macvim):

" no other configuration than this needed for solarized
colorscheme solarized
highlight SpecialKey ctermfg=11 ctermbg=8

if &term =~ '256color'
  " Disable Background Color Erase (BCE) so that color schemes work
  " properly within 256-color terminals
  set t_ut=
endif


评论


这导致与设置t_Co = 16类似的问题。我可以肯定地说我的调色板有问题,但是我还没有弄清楚。

–Oberdiear
2015年2月23日在14:48

您正在使用哪种终端仿真器?如果我没记错的话,konsole的内置日光化配置不能完全使用,并且需要使用原始日光化存储库中的设置…

– Jubal
15年2月23日在15:45

我使用Xfce终端。

–Oberdiear
15年2月23日在16:30

我想我已经成功了:尝试将TERM强制为xterm-256color,同时使用来自终端首选项而不是solarized xfce-terminal git存储库的solarized预设。这与上面的BCE hack一起为我做了xfce4-terminal的技巧。

– Jubal
2015年2月23日在20:08

(底层的终端仿真和字体渲染仍然有些麻烦,我想我想起了为什么我回到Linux上的普通xterm了……)

– Jubal
2015年2月23日在20:12



#7 楼

上班很痛苦(我在Linux Mint中使用终端Vim),但是不幸的是,我没有写下我所做的每件事的细节。这是我的vimrc的相关部分:

syntax enable
set background=dark
set t_Co=16
colo solarized


也可能值得在GitHub上查看此项目。

评论


设置t_Co = 16会使颜色与预期的颜色完全不同。我还使用默认的Xubuntu终端为Xfce-Terminal。

–Oberdiear
2015年2月20日在5:57



@Oberdiear如果将t_Co = 16设置以这种方式影响颜色(未设置g:solarized_termcolors变量),则表示终端颜色设置不正确,无法使用日光浴。您如何设置终端颜色?

–丰富
15年2月20日在11:58

#8 楼

对我有用的是删除您这部分的设置

if has('gui_running')
   set background=dark
else
   set background=dark
endif


我正在运行xfce4终端

#9 楼

我也遇到了xfce-terminal的问题。

经过一番研究,我发现了这个错误:XFCE终端中设置为$TERM的任何内容都被忽略。

我认为这确实是XFCE终端(仍基于GTK + 2)使用的基础(未维护)旧VTE库的错误。切换到隐式使用新VTE库的GTK + 3终端即可解决此问题。