安装后 Solarized 配色方案没有达到预期效果

安装后 Solarized 配色方案没有达到预期效果

1

安装 solarized 后,背景颜色与预期不符。vim 使用终端黑色背景,而不是 solarized 的蓝色背景。我的终端也设置为 Xterm-256color。我尝试了几个选项包括此行let g:solarized_termtrans = 1,但仍然没有任何变化。我在这里做错了什么?

答案1

啊,是的。我也遇到过同样的问题。

你应该添加

"set t_Co=256           " No        
set t_Co=16

此外,太阳能选项是

"g:solarized_termcolors=   16      |   256
"g:solarized_termtrans =   0       |   1
"g:solarized_degrade   =   0       |   1
"g:solarized_bold      =   1       |   0
"g:solarized_underline =   1       |   0
"g:solarized_italic    =   1       |   0
"g:solarized_contrast  =   "normal"|   "high" or "low"
"g:solarized_visibility=   "normal"|   "high" or "low"
"g:solarized_hitrail   =   0       |   1
"g:solarized_menu      =   1       |   0

我个人曾经使用过

let g:solarized_termcolors=   16
let g:solarized_termtrans =   0       
let g:solarized_degrade   =   0       
let g:solarized_bold      =   1       
let g:solarized_underline =   1       
let g:solarized_italic    =   1       
let g:solarized_contrast  =   "normal"
let g:solarized_visibility=   "normal"
let g:solarized_hitrail   =   0       
let g:solarized_menu      =   1  

我还为我的终端设置了 solarized。这是我的 ~/.Xresources 中的相关部分,我从互联网上某处复制过来的。

请注意,我删除了“*background”行,这可能正是您所需要的,但无论如何,这对我来说是有效的。但是,它确实改变了您的终端的颜色。

!! ================= SOLARIZED =============================================================

!! drop in Solarized colorscheme for Xresources/Xdefaults

!!SOLARIZED HEX     16/8 TERMCOL  XTERM/HEX   L*A*B      RGB         HSB
!!--------- ------- ---- -------  ----------- ---------- ----------- -----------
!!base03    #002b36  8/4 brblack  234 #1c1c1c 15 -12 -12   0  43  54 193 100  21
!!base02    #073642  0/4 black    235 #262626 20 -12 -12   7  54  66 192  90  26
!!base01    #586e75 10/7 brgreen  240 #585858 45 -07 -07  88 110 117 194  25  46
!!base00    #657b83 11/7 bryellow 241 #626262 50 -07 -07 101 123 131 195  23  51
!!base0     #839496 12/6 brblue   244 #808080 60 -06 -03 131 148 150 186  13  59
!!base1     #93a1a1 14/4 brcyan   245 #8a8a8a 65 -05 -02 147 161 161 180   9  63
!!base2     #eee8d5  7/7 white    254 #e4e4e4 92 -00  10 238 232 213  44  11  93
!!base3     #fdf6e3 15/7 brwhite  230 #ffffd7 97  00  10 253 246 227  44  10  99
!!yellow    #b58900  3/3 yellow   136 #af8700 60  10  65 181 137   0  45 100  71
!!orange    #cb4b16  9/3 brred    166 #d75f00 50  50  55 203  75  22  18  89  80
!!red       #dc322f  1/1 red      160 #d70000 50  65  45 220  50  47   1  79  86
!!magenta   #d33682  5/5 magenta  125 #af005f 50  65 -05 211  54 130 331  74  83
!!violet    #6c71c4 13/5 brmagenta 61 #5f5faf 50  15 -45 108 113 196 237  45  77
!!blue      #268bd2  4/4 blue      33 #0087ff 55 -10 -45  38 139 210 205  82  82
!!cyan      #2aa198  6/6 cyan      37 #00afaf 60 -35 -05  42 161 152 175  74  63
!!green     #859900  2/2 green     64 #5f8700 60 -20  65 133 153   0  68 100  60

#define S_base03        #002b36
#define S_base02        #073642
#define S_base01        #586e75
#define S_base00        #657b83
#define S_base0         #839496
#define S_base1         #93a1a1
#define S_base2         #eee8d5
#define S_base3         #fdf6e3
#define S_yellow        #b58900
#define S_orange        #cb4b16
#define S_red           #dc322f
#define S_magenta       #d33682
#define S_violet        #6c71c4
#define S_blue          #268bd2
#define S_cyan          #2aa198
#define S_green         #859900

!# I removed this, causing some GUI problems, I think
!#*background:            S_base03
*foreground:            S_base00
*fading:                40
*fadeColor:             S_base03
*cursorColor:           S_base1
*pointerColorBackground:S_base01
*pointerColorForeground:S_base1

!! black dark/light
*color0:                S_base02
*color8:                S_base03

!! red dark/light
*color1:                S_red
*color9:                S_orange

!! green dark/light
*color2:                S_green
*color10:               S_base01

!! yellow dark/light
*color3:                S_yellow
*color11:               S_base00

!! blue dark/light
*color4:                S_blue
*color12:               S_base0

!! magenta dark/light
*color5:                S_magenta
*color13:               S_violet

!! cyan dark/light
*color6:                S_cyan
*color14:               S_base1

!! white dark/light
*color7:                S_base2
*color15:               S_base3

答案2

256 种颜色

日晒调色板不是包括大多数现代终端默认包含的所有适当颜色,这些颜色包含在虚拟终端提供的颜色属性列表中。据我所知,虚拟终端提供了一个颜色列表(从 color0 到 color255 - 即 256 种颜色),通常以十六进制值表示。这允许图形环境(不是 tty)内的终端{0..255}以特定颜色显示要显示的每种颜色。


你可以通过运行以下命令在虚拟终端中查看所有 256 种颜色简短的 bash 脚本我做到了。你应该看到类似这样的内容:

256 色选择器屏幕截图


例如,我使用英石Linux 中的虚拟终端,为了在 vim 中获得日光色配色方案,需要在 st 的配置文件中设置终端颜色 0-15,如下所示:

static const char *colorname[] = {
    /* solarized dark */
    "#073642",  /*  0: black    */
    "#dc322f",  /*  1: red      */
    "#859900",  /*  2: green    */
    "#b58900",  /*  3: yellow   */
    "#268bd2",  /*  4: blue     */
    "#d33682",  /*  5: magenta  */
    "#2aa198",  /*  6: cyan     */
    "#eee8d5",  /*  7: white    */
    "#002b36",  /*  8: brblack  */
    "#cb4b16",  /*  9: brred    */
    "#5f8700",  /* 10: brgreen  */
    "#d8b822",  /* 11: bryellow */
    "#0087ff",  /* 12: brblue   */
    "#6c71c4",  /* 13: brmagenta*/
    "#00afaf",  /* 14: brcyan   */
    "#fdf6e3",  /* 15: brwhite  */
    /* special colors */
    [256] = "#002b36", /* background */
    [257] = "#93a1a1", /* foreground */
};

/*
 * Default colors (colorname index)
 * foreground, background, cursor
 */
static unsigned int defaultfg = 257;
static unsigned int defaultbg = 256;
static unsigned int defaultcs = 257;
static unsigned int defaultrcs = 15;

您可以看到,st 与所有(我所知道的)现代虚拟终端一样,使用十六进制值来表示每 256 种颜色。


你应该注意,对于 vim 中的 solarized 配色方案,你必须至少有color0color8正确设置,因为这两种颜色是不是默认情况下,在颜色列表中找到{0..255}。从那里,您可以使用与 solarized 方案使用的颜色范围类似的颜色{0..15},但我只是将整个控制台设置为 solarized,然后让 solarized 正常工作。

vim

就 vimrc 中的配置而言,我发现有几件事情值得一提,与 solarized colorscheme 有关。

let g:solarzied_termcolors=256即使终端支持 256 色,也会弄乱终端的颜色。这可能是因为当solarized_termcolors 256,它可能期望使用类似 gvim 的 GUI。因此,最好将该设置保留为默认设置。

我注意到set t_Co=16和之间没有区别set t_Co=256,但是你大概想要set t_Co=16在虚拟终端内,然后你大概想要set t_Co=8在 tty 终端里面。

另外,我会let g:solarized_italic=0在你的 vimrc 中这样做,原因是:在许多终端中,如果 vim 无法正确显示斜体(即使受到支持),它经常会恢复到撤销反向属性。这意味着如果您有一个深色的日晒背景,并且启用了斜体1,那么例如,注释和其他任何应该斜体的内容将具有浅灰色背景和深蓝色文本。我发现这非常令人分心,并且调试起来并不容易,因为您只会想“为什么这些东西是反转的?”并且您不太确定来源。

最后,我会将其放入let g:solarized_bold=1你的 vimrc 中(或将其保留为默认值,因为它默认启用)。粗体可能会被正确解释,而且我注意到,如果粗体是不是启用,则会导致弹出菜单出现问题(实际上,当solarized_bold使用 禁用时0,菜单中的内容奇怪足够的大胆的- 这是违反直觉的,但这就是为什么你应该让它变为粗体...这实际上是默认的,所以如果你愿意的话,你可以把它从你的 vimrc 中删除。

{0..15}当你的终端的 256 色 ( ) “正确” 设置后,它看起来可能是这样的:

在此处输入图片描述

相关内容