安装 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 脚本我做到了。你应该看到类似这样的内容:
例如,我使用英石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 配色方案,你必须至少有color0
并color8
正确设置,因为这两种颜色是不是默认情况下,在颜色列表中找到{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 色 ( ) “正确” 设置后,它看起来可能是这样的: