28

将以下内容添加到.vimrc作品中

:hi Folded ctermbg=Grey

但它仍然过于明亮和突出,所以我们想指定一个更具体的颜色三元组,如下所示:

:hi Folded ctermbg=#A0A0A0

但 vi 不会接受它:

Error detected while processing /home/guest/.vimrc:
line   10:
E421: Color name or number not recognized: ctermbg=#A0A0A0

有什么建议么?

4

2 回答 2

53

cterminctermbg是“彩色终端”的缩写。它用于定义 Vim 在终端仿真器中运行时的背景颜色,并且只能接受命名颜色如greyorcyan或颜色编号如7. 十六进制值仅在 GVim/MacVim 中有效,并且必须与guibg/一起使用guifg

hi Folded guibg=#A0A0A0

在你的 shell 中,做$ echo $TERM:它应该返回类似xterm,screenxterm-256color一些变体的东西。

如果您在不能显示超过 8/16 色($TERM不包含256color)的终端仿真器中运行 Vim,除非您在终端仿真器中定义自己的调色板,否则您将无法使用不同的灰色阴影。

它应该如下所示:

hi Folded ctermbg=7

或者像这样:

hi Folded ctermbg=grey

如果您的终端仿真器将自己宣传为“准备好 256 种颜色”($TERMcontains 256color),那么您可以使用此图表中的任何颜色,只要您使用它的数字(242)而不是它的十六进制值。

它应该如下所示:

hi Folded ctermbg=242
于 2013-04-15T12:09:45.000 回答
0

除了romainl的解释之外,必须将以下几行添加到 .vimrc 中,如此所述:

if &term =~ "xterm"
  "256 color --
  let &t_Co=256
  " restore screen after quitting
  set t_ti=ESC7ESC[rESC[?47h t_te=ESC[?47lESC8
  if has("terminfo")
    let &t_Sf="\ESC[3%p1%dm"
    let &t_Sb="\ESC[4%p1%dm"
  else
    let &t_Sf="\ESC[3%dm"
    let &t_Sb="\ESC[4%dm"
  endif
endif

之后,从romainl提供的xterm256颜色表中选择的任何十进制颜色值都应相应地显示在 PuTTY 中。

于 2013-04-16T04:50:19.123 回答