如何让vim语法高亮显示与隐藏一起工作?

时间:2014-12-22 21:41:03

标签: haskell vim

我正在使用HaskellConcealPlus来隐藏Haskell代码的某些元素,并使用来自here的haskell.vim来为Haskell提供更好的语法突出显示。以下是它的样子:

enter image description here

问题在于div被隐藏后会丢失它的橙色突出显示,当'/'突出显示为橙色时会导致不一致,但是'÷'是白色的,即使它们都是中缀运算符。有没有办法让语法突出显示和隐藏两者都有效?

1 个答案:

答案 0 :(得分:2)

只要部分文字被隐藏,它们就会按照突出显示组Conceal的定义进行着色。 :help hl-Conceal会告诉您有关该群组的更多详情。 :highlight将显示所有突出显示组及其颜色声明。例如。我的隐藏组如下图所示:

Conceal        xxx ctermfg=4 ctermbg=0 guifg=#8fa1b3 guibg=#2b303b

为了获得更好的颜色,您当然可以为.vimrc内的隐藏组设置自定义颜色和属性。下面是一个示例,它将使用粗体,带下划线的文本,使用ANSI颜色9作为前景色,ANSI颜色0作为背景颜色用于所有hs扩展名的文件:

augroup AdjustConceal
    autocmd!
    autocmd ColorScheme *.hs highlight Conceal cterm=bold,underline ctermfg=9 ctermbg=0
augroup END

或者,您只需链接到现有的突出显示组即可。以下示例将从Conceal链接到Search

augroup AdjustConceal
    autocmd!
    autocmd ColorScheme *.hs highlight link Conceal Search
augroup END