我安裝 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
我還將我的終端本身設定為日光照射。這是我的 ~/.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 中獲得 Solarized 顏色方案,需要在 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}
。從那裡,您可以使用與日光照射方案範圍內使用的顏色類似的顏色{0..15}
,但我只是將整個控制台進行日光照射,然後讓日光照射使其正常工作。
維姆
至於你的 vimrc 中的配置,我發現一些關於 Solarized 配色方案值得一提的事情。
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 色 ( ) 時,它可能如下所示: