После установки 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, нужно установить цвета терминала 0-15 внутри файла конфигурации st следующим образом:
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 вам НУЖНО иметь как минимум color0
и color8
правильно настроенные, поскольку эти два цветанетнайдено по умолчанию в списке {0..255}
цветов. Оттуда вы можете использовать цвета, похожие на цвета, используемые в диапазоне {0..15}
по схеме соляризации, но я просто делаю всю свою консоль соляризованной и позволяю соляризованной, чтобы ее работа была нормальной.
вим
Что касается конфигурации внутри вашего vimrc, я обнаружил несколько вещей, которые стоит упомянуть, касающихся соляризованной цветовой схемы.
let g:solarzied_termcolors=256
портит цвета в терминале, даже если он поддерживает 256 цветов. Это, вероятно, потому, что когдаsolarized_termcolors
является 256
, вероятно, он ожидает GUI вроде gvim. Поэтому лучше оставить эту настройку по умолчанию.
Я не заметил никакой разницы между set t_Co=16
и set t_Co=256
, но вывероятнохотите set t_Co=16
внутри виртуального терминала, и вывероятнохочу set t_Co=8
внутри терминала tty.
Также я бы сделал это let g:solarized_italic=0
внутри вашего vimrc по следующей причине: во многих терминалах, если vim не может правильно отображать курсив (даже если он поддерживается), он часто возвращается кобеспечить регрессАтрибут reverse. Это означает, что если у вас темный соляризованный фон и включен курсив с помощью 1
, то, например, комментарии и все остальное, что должно быть выделено курсивом, будут иметь светло-серый фон с темно-синим текстом. Я считаю, что это очень отвлекает, и это не очень легко отлаживать, потому что все, о чем вы думаете, это «почему эта штука перевернута?» и вы не совсем уверены в источнике.
Наконец, я бы вставил let g:solarized_bold=1
ваш vimrc (или оставил бы его по умолчанию, так как он включен по умолчанию). Жирный шрифт, вероятно, будет интерпретироваться правильно, и я заметил, что если жирный шрифтнетвключено, то это вызывает проблемы во всплывающих меню (на самом деле, когда solarized_bold
отключено с помощью 0
, вещи в менюкак ни страннодостаточносмелый- что противоречит здравому смыслу, но именно поэтому вам следует просто сделать его жирным... на самом деле это значение по умолчанию, так что вы можете убрать его из своего vimrc, если хотите).
Вот как это может выглядеть, если 256 цветов ( {0..15}
) вашего терминала настроены «правильно»: