Vim语法突出显示每行的第一个单词

时间:2015-07-22 01:29:20

标签: vim syntax highlight

我有一种文件格式,每行的第一个单词都有特殊含义。我想写一个.vim文件来自定义这样的语法高亮。我阅读了一些关于高亮关键字或匹配的教程。但似乎没有明确的方法来解决我的问题。有谁知道如何实现它?

1 个答案:

答案 0 :(得分:0)

您需要创建语法匹配器,然后将其链接到突出显示。

syn match startLineMatch /^\s*\w\+/
hi def link startLineMatch Error

这将突出显示每一行的第一个单词。

/^\s*\w\+/匹配行^的开头,然后匹配任意数量的空白\s*,然后匹配一个或多个单词字符\w\+。单词字符相当于[a-zA-Z]。如果您希望匹配任何空格字符,则可以使用\S代替\w

在这种情况下,我已经重新使用(链接)了我们自定义高亮定义的错误突出显示定义,以开始行匹配。

如果您尝试覆盖现有的突出显示组,则此方法无法正常工作,因为a syn keyword在语法突出显示中的优先级高于syn match。您必须删除现有关键字突出显示才能使新匹配生效。