Vim自定义语法仅突出显示背景

时间:2011-08-11 21:48:12

标签: syntax-highlighting vim vim-syntax-highlighting

我想在Vim(GUI版本)中自定义语法高亮显示。我的语言有一个现有的语法文件。我希望添加该语法,如果该行以>开头,则突出显示每行的背景颜色。我发现我基本上可以通过

实现这一目标
:syntax match Output /^>.*$/

并添加

:hi Output guibg=LightBlue

到colourscheme。这些Output行中的文本背景以浅蓝色着色,但它也会覆盖前景色。因此大多数语法突出显示都会消失。如何在这些行中保持前景语法突出显示?

另外:有没有办法将背景的高亮显示扩展到这些线的末尾(屏幕的右端)?

3 个答案:

答案 0 :(得分:3)

以下是保留语法的方法,我匹配以{

开头的行
:hi Output guibg=LightBlue
:match Output '\%>0v{.*'

enter image description here

编辑,因为您需要相反的

:match Output '^[^<].*$'

enter image description here

答案 1 :(得分:0)

试试这个:

:hi Output guibg=LightBlue guifg=NONE

答案 2 :(得分:0)

正如Eric Fortis指出的那样,实现所需内容的最简单方法是使用:match命令。

我知道通过语法高亮实现此目的的唯一方法是要求您匹配当前正在执行的整行。然后,您需要使用contains=...修饰符指定哪些语法元素可以在您的行中。我也很确定这些元素需要分配contained属性。这样,你的行中找到的任何元素,即.*匹配,都会保留它的突出显示。

有关详情,请参阅:help :syn-contains