2010-07-16 55 views
7

如果我设置了cursorline选项,我会将当前光标线加下划线,并且所有未指定颜色的字符也会变为黄色(只有在普通高亮组未触及时才会显示黄色)。我想知道,这个颜色(黄色)的定义在哪里?我知道CursorLine突出组。问题是,在我使用它的默认色彩方案没有定义,并且:hi CursorLine显示光标行的颜色在哪里定义?

CursorLine  xxx term=underline cterm=underline 

其中xxx着色为黄色和下划线。我不想改变颜色,我想为2html.vim-like插件添加cursorline支持,所以我需要一些高亮组/变量/等,我可以从中获取此黄色。

+1

属于对superuser.com – 2010-07-16 22:18:18

+0

见下面根据您的更新我编辑的回应。 – 2010-07-18 00:52:12

回答

6

编辑:您可以使用synIDattr()函数查询特定高光组的大部分值。例如,这将打印分配给CursorLine前景色如果已设置:

:echo synIDattr(synIDtrans(hlID("CursorLine")), "fg") 

您还可以确定的underlineundercurl等国家,类似的电话。

几个警告: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 CursorLine term=underline guibg=#555555 cterm=underline 

这通常是一个Vim色彩方案文件内完成的,其中包含许多这样的线来定义颜色Vim的用户的部分:光标线的颜色可以与highlight命令像这样的设置界面以及字符串,数字,关键字等常见语法元素。

通过发出colorscheme命令后跟一个方案名称,可以告诉Vim要使用哪种颜色方案。这里有一些尝试:

:colorscheme desert 
:colorscheme evening 
:colorscheme koehler 

然而,大多数colorschemes的包括在Vim中并不真正包含一大亮点命令为CursorLine元素,所以Vim的只是使用其内置的默认cursorline着色。

要改变Vim使用cursorline的颜色,你可以在你.vimrc文件包括您自己的highlight命令(后,你发出的任何colorscheme命令,否则你的高亮色彩可能会被清除)。更好的是,你可以制作自己的colorcheme文件并在其中添加适当的高亮语句。 (很容易让你自己找到一个可容忍的色彩方案,然后复制它,使任何变化,你喜欢的。)

Vim中包括几个色彩方案文件,你可以找到更多的网上。下面是预览几百个站点:

http://code.google.com/p/vimcolorschemetest/

请参阅以下帮助主题的详细信息:

:help :colorscheme 
:help :highlight 
:help hl-CursorLine 
0

在coloescemes的cursorline的色的特性就被称为“CursorLine ”。例如,袋熊色彩方案使用该行:

hi CursorLine guibg=#2d2d2d 

如果要更改默认的色彩方案,文件存储(在大多数Linux发行版)放在/ usr/share/vim目录/ vim72 /颜色。

只有一个注意:CursorLine选项仅适用于Vim 7以上版本,因此对于您使用7版(或Vi版)之前的版本使用该颜色的非常不可能的情况,您应该询问colorscheme文件中的版本,例如:

if version >= 700 
    hi CursorLine guibg=#2d2d2d 
endif 
+0

当你升级,你必须保存和移动它们VIM这是不可取的改变在/ usr/share/vim目录或任何其他系统范围的位置的文件,否则。如果你喜欢他们中的一个,只是想改变一些东西,这个文件复制到自己的〜/ vim的/颜色/ whatever.vim(我建议你重命名为您选择的新名字)。现在编辑该文件并将'let g:colors_name'更改为您为该文件选择的名称,并更改/添加所需的任何高亮组。请注意,在Windows上,用户特定的路径将是'$ HOME \ vimfiles'。你可以看到vim在''set rtp?'运行时使用的路径。 – cptstubing06 2013-02-03 18:01:31