编辑:您可以使用synIDattr() 函数查询特定突出显示组的大部分值。例如,如果设置了一个,这将打印分配给CursorLine 的前景色:
:echo synIDattr(synIDtrans(hlID("CursorLine")), "fg")
也可以通过类似的调用判断underline、undercurl等的状态。
几个警告:synIDattr() 有问题且不完整。它有时会意外返回 -1,并且当前不允许检查所有属性。 (据说正在为即将发布的 Vim 发布补丁。)请参阅这些线程以获取更多信息:
Problem with synIDattr()
Programmatically detect a current "highlight" setting?
如果synIDattr() 不会做你想做的事,将highlight 命令的输出重定向到一个变量并自己解析它可能会更容易:
:redir => cursorline_highlight | silent highlight CursorLine | redir END
:echo "CursorLine highlight: " . cursorline_highlight
光标线的颜色可以用highlight这样的命令来设置:
:highlight CursorLine term=underline guibg=#555555 cterm=underline
这通常在 Vim 色彩方案文件中完成,该文件包含许多这样的行来定义 Vim 用户界面部分的颜色,以及常见的句法元素,如字符串、数字、关键字等。
您可以通过发出colorscheme 命令后跟方案名称来告诉 Vim 使用什么颜色方案。这里有一些尝试:
:colorscheme desert
:colorscheme evening
:colorscheme koehler
但是,Vim 包含的大多数颜色方案实际上并不包含 CursorLine 元素的高亮命令,因此 Vim 只使用其内置的默认光标线着色。
要更改 Vim 用于光标线的颜色,您可以在您的 .vimrc 文件中包含您自己的 highlight 命令(在您发出任何 colorscheme 命令之后;否则您的突出显示颜色可能会被清除)。更好的是,您可以制作自己的颜色方案文件并在其中添加适当的突出显示语句。 (找到一个可以容忍的配色方案,然后复制它并进行任何你喜欢的更改,让你自己轻松一点。)
Vim 包含多个配色方案文件,您可以在网上找到更多。这是一个预览几百个的网站:
http://code.google.com/p/vimcolorschemetest/
有关详细信息,请参阅以下帮助主题:
:help :colorscheme
:help :highlight
:help hl-CursorLine