有没有办法确定是否已在Vim中定义了突出显示?

时间:2010-08-21 21:19:43

标签: vim colors syntax-highlighting

对于文件类型插件,我想定义并使用默认的自定义突出显示名称,例如:

hi CsvColumn guifg=black guibg=NavajoWhite ctermfg=black ctermbg=yellow

但是,我想允许用户优先定义自己的默认值,所以要执行以下操作:

if <somehow or other check if 'CsvColumn' has NOT been defined>
    hi CsvColumn guifg=black guibg=NavajoWhite ctermfg=black ctermbg=yellow
fi

有办法做到这一点吗?

由于这是一个文件类型插件,每次加载或读取缓冲区时都会执行一次,因此很可能在用户的'.vimrc'源之后它会被提取,因此用户的任何定义都是如此如果我不做检查,那么在那里或在一个colorscheme中将被覆盖。

1 个答案:

答案 0 :(得分:3)

有一个功能,名为hlexists({name})

  

结果是一个数字,如果存在名为{name}的突出显示组,则该数字不为零。这是以某种方式定义组的时间。不一定在为其定义突出显示时,它也可能已用于语法项。

所以你的代码是:

if hlexists('CsvColumn')
    hi ...
fi