ctermfg={color-nr} *highlight-ctermfg* *E421*
ctermbg={color-nr} *highlight-ctermbg*
{color-nr} 参数指定颜色号。其范围从零到 termcap 项目 "Co" 给出的数字
(不含)。实际的颜色取决于终端的类型和设置。有时,颜色也取决于 "cterm"
的值。例如,有的系统上 "cterm=bold ctermfg=3" 给出另外一个颜色,别的系
统上你只会得到颜色 3。
xterm 上,它取决于你的资源,这并不容易预测。你的 xterm 文档会说明缺省
值。color-xterm 的颜色可以通过 .Xdefaults 文件修改。不幸的是,这意味着
每个用户未必会得到完全相同的颜色。|xterm-color| 提供带色彩的 xterm 的
信息。
MSDOS 的标准颜色是固定的 (在控制窗口上),所以我们用这些名字。在 X11
上,颜色名字的含义是固定的,所以我们用这些颜色设置,以使高亮设置可移植
(是不是很复杂?)。下面列出这些被识别的名字和所使用的颜色号:
*cterm-colors*
NR-16 NR-8 颜色名 ~
0 0 Black (黑)
1 4 DarkBlue (深蓝)
2 2 DarkGreen (深绿)
3 6 DarkCyan (深青)
4 1 DarkRed (深红)
5 5 DarkMagenta (深品红)
6 3 Brown,DarkYellow (褐、深黄)
7 7 LightGray、LightGrey,Gray,Grey (浅灰)
8 0* DarkGray,DarkGrey (深灰)
9 4* Blue,LightBlue (浅蓝)
10 2* Green,LightGreen (浅绿)
11 6* Cyan,LightCyan (浅青)
12 1* Red,LightRed (浅品红)
13 5* Magenta,LightMagenta (浅红)
14 3* Yellow,LightYellow (浅黄)
15 7* White (白)
"NR-16" 下的数字用于 16 色的终端 ('t_Co' 大于等于 16)。"NR-8" 下的数字
用于 8 色终端 ('t_Co' 小于 16)。'*' 表明 ctermfg 使用的时候设置 bold
属性。在许多 8 色终端上 (比如,"linux"),它会显示增亮的颜色。但这不适
用于背景色。如果没有 '*',则不包含 bold 属性。如果你想用不同的方式设置
bold 属性,在 "ctermfg=" 或 "ctermbg=" 参数_之后_设置 "cterm=" 参数。
或者使用数字,而不是颜色名。
忽略颜色名的大小写。
注意 16 色 ansi 风格的终端 (包括 xterm) 使用 NR-8 一列的数字。这里,
'*' 意味着 '加 8',所以 Blue 成了 12,DarkGray 是 8,依此类推。
注意 有些色彩终端下,这些名字可能会产生错误的颜色!
*:hi-normal-cterm*
Normal 组设置的 "ctermfg" 或 "ctermbg" 颜色成为非高亮文本使用的颜色。
例如: >
:highlight Normal ctermfg=grey ctermbg=darkblue
< 设置 Normal 组的 "ctermbg" 颜色的时候,'background' 选项会自动设置。这
使得依赖于 'background' 的高亮组发生改变!这意味着你应该先设置 Normal
的颜色,然后再设置其它的。
已经使用色彩方案的时候,修改 'background' 使之被重新载入,这会复位所有
颜色 (包括 Normal)。如果你不希望如此,先删除 "g:colors_name" 变量。
如果你给 Normal 组设置了 "ctermfg" 或 "ctermbg",Vim 退出时需要复位颜
色,这通过 "op" termcap 项目 |t_op| 完成。如果不能正确工作,尝试在你的
.vimrc 里设置 't_op' 选项。
*E419* *E420*
如果 Vim 知道 Normal 的前景和背景色,"fg" 和 "bg" 可以用做颜色名字。这
只有在设置了 Normal 组的颜色以后和 (译者注: 或?) 在 MS-DOS 控制台上才
可以。比如,设置反显视频: >
:highlight Visual ctermfg=bg ctermbg=fg
< 注意 使用的颜色必须在给出命令的时候已经合法。如果之后 Normal 组的颜色
发生改变,"fg" 和 "bg" 颜色不会被调整。
|