После установки соляризованная цветовая схема не получилась такой, как ожидалось

После установки соляризованная цветовая схема не получилась такой, как ожидалось

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, нужно установить цвета терминала 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}) вашего терминала настроены «правильно»:

введите описание изображения здесь

Связанный контент