如何在.vimrc中设置自定义颜色以折叠突出显示(与putty一起使用)

时间:2013-04-15 11:46:39

标签: vim putty vim-syntax-highlighting

将以下内容添加到.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

有什么建议吗?

2 个答案:

答案 0 :(得分:40)

cterm中的ctermbg是“彩色终端”的缩写。当Vim在终端仿真器中运行时,它用于定义背景颜色,并且只能接受greycyan等命名颜色或7等颜色数字。十六进制值仅适用于GVim / MacVim,必须与guibg / guifg一起使用:

hi Folded guibg=#A0A0A0

在您的shell中,执行$ echo $TERM:它应返回xtermscreenxterm-256color或某些变体等内容。

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

它应该是这样的:

hi Folded ctermbg=7

或者那样:

hi Folded ctermbg=grey

如果您的终端模拟器将自己宣传为“256色就绪”($TERM包含256color),则只要您使用其号码,就可以使用this chart中的任何颜色( 242)而不是十六进制值。

它应该是这样的:

hi Folded ctermbg=242

答案 1 :(得分:0)

除了romainl的解释外,还必须按照here的描述将以下行添加到.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

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