如果我设置了cursorline
选项,我会将当前光标线加下划线,并且所有未指定颜色的字符也会变为黄色(仅当普通高亮组未触及时,黄色才会出现)。我想知道,这个颜色(黄色)的定义在哪里?
修改:我了解CursorLine
突出显示组。问题是在我使用的默认colorscheme中没有定义,:hi CursorLine
显示
CursorLine xxx term=underline cterm=underline
其中xxx用黄色着色并加下划线。我不想改变颜色,我想为cursorline
添加2html.vim
支持 - 就像插件一样,所以我需要一些突出显示组/变量/等,我可以从中获得这种黄色。
答案 0 :(得分:6)
修改:您可以使用synIDattr()
功能查询特定突出显示组的大部分值。例如,如果设置了CursorLine
,则会打印分配给:echo synIDattr(synIDtrans(hlID("CursorLine")), "fg")
的前景色:
underline
您还可以使用类似的来电来确定undercurl
,synIDattr()
等的状态。
一些警告:synIDattr()
有缺陷且不完整。它有时会意外返回-1,并且当前不允许检查所有属性。 (据推测,即将发布的Vim版本正在开发补丁。)有关更多信息,请参阅这些主题:
Programmatically detect a current "highlight" setting?
如果highlight
无法满足您的需求,可能更容易将:redir => cursorline_highlight | silent highlight CursorLine | redir END
:echo "CursorLine highlight: " . cursorline_highlight
命令的输出重定向到变量并自行解析:
highlight
可以使用:highlight CursorLine term=underline guibg=#555555 cterm=underline
命令设置光标线的颜色,如下所示:
colorscheme
这通常在Vim colorscheme文件中完成,该文件包含许多这样的行来定义Vim用户界面部分的颜色,以及常见的句法元素,如字符串,数字,关键字等。
您可以通过发出:colorscheme desert
:colorscheme evening
:colorscheme koehler
命令后跟方案名称来告诉Vim使用哪种colorscheme。以下是一些尝试:
CursorLine
但是,Vim中包含的大多数colorschemes实际上并不包含highlight
元素的高亮命令,因此Vim只使用其内置的默认光标线着色。
要更改Vim用于光标线的颜色,您可以在.vimrc
文件中包含您自己的colorscheme
命令(之后您已发布任何:help :colorscheme
:help :highlight
:help hl-CursorLine
}命令;否则您的高亮颜色可能会被清除)。更好的是,您可以制作自己的colorscheme文件并在那里添加适当的高亮语句。 (通过找到可容忍的colorscheme,然后复制它并做出你喜欢的任何改变,让自己变得容易。)
Vim包含多个colorscheme文件,您可以在线找到更多。这是一个预览几百个网站:
http://code.google.com/p/vimcolorschemetest/
有关详细信息,请参阅以下帮助主题:
{{1}}
答案 1 :(得分:1)
另请查看http://vim.wikia.com/wiki/Configuring_the_cursor以了解其他一些自定义方法
答案 2 :(得分:0)
在coloescemes上,cursorline颜色的属性叫做“CursorLine”。例如,wombat colorscheme使用以下行:
hi CursorLine guibg=#2d2d2d
如果要更改默认颜色方案,则会在/ usr / share / vim / vim72 / colors上存储(在大多数Linux发行版上)文件。
只有一个注意事项:CursorLine选项仅适用于Vim 7以上版本,因此对于非常不可能的情况,您可以使用带有7(或Vi)之前版本的colorscheme,您应该在colorscheme文件中询问版本,例如:
if version >= 700
hi CursorLine guibg=#2d2d2d
endif