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

Mar*_*ett 6 vim haskell

我正在使用HaskellConcealPlus隐藏Haskell代码的某些元素,并从这里隐藏haskell.vim 以获得更好的Haskell语法突出显示.以下是它的样子:

在此输入图像描述

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

Sau*_*ier 4

一旦部分文本被隐藏,它们就会按照突出显示组的定义着色Conceal:help hl-Conceal将告诉您有关该组的更多详细信息。:highlight将向您显示所有突出显示组及其颜色声明。例如,我的隐藏组如下所示:

Conceal        xxx ctermfg=4 ctermbg=0 guifg=#8fa1b3 guibg=#2b303b
Run Code Online (Sandbox Code Playgroud)

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

augroup AdjustConceal
    autocmd!
    autocmd ColorScheme *.hs highlight Conceal cterm=bold,underline ctermfg=9 ctermbg=0
augroup END
Run Code Online (Sandbox Code Playgroud)

或者,您可以简单地链接到现有的突出显示组。下面的示例将从 链接ConcealSearch

augroup AdjustConceal
    autocmd!
    autocmd ColorScheme *.hs highlight link Conceal Search
augroup END
Run Code Online (Sandbox Code Playgroud)