这是我的.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的背景非常黄。
#1 楼
我认为可能发生这种情况的原因有两个:您要使用的日晒配色方案并未针对要突出显示的任何功能声明
ctermfg
和ctermbg
。尝试这种配色方案,在终端和gvim内部看起来应该基本相同,如果是这种情况,那么您可能需要研究使用声明ctermfg
和ctermbg
的配色方案。您可以需要确保终端仿真器支持您尝试显示的颜色:
确保已安装文件
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_Co
和g: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终端即可解决此问题。
评论
“ [m] y终端具有正确的颜色和背景”是指您遵循了有关终端中Vim的特定建议吗?我确实遵循了建议,@ Andrew。不过谢谢你。
@Oberdiear Andrew链接到的建议解释说,您应该将终端设置为使用日光色,而不要使用g:solarized_termcolors = 256选项。如果您很高兴在终端中使用日光色,则此方法会更好。您的问题文字暗示您已将终端设置为使用日光色(尽管所显示的屏幕截图看起来不像我一样),因此在这种情况下,为什么要使用g:solarized_termcolors = 256设置?
您正在使用哪个终端?我有用于gnome-terminal的脚本。
@Rich,我想我没有正确设置调色板。您(或其他人)知道如何正确设置Xfce Terminal吗?