【发布时间】:2015-10-11 16:40:12
【问题描述】:
我有一种文件格式,其中每行的第一个单词都有特殊含义。我想写一个.vim 文件来自定义这样的语法高亮。我阅读了一些关于突出显示关键字或匹配的教程。但似乎没有明确的方法可以解决我的问题。有谁知道如何实现它?
【问题讨论】:
我有一种文件格式,其中每行的第一个单词都有特殊含义。我想写一个.vim 文件来自定义这样的语法高亮。我阅读了一些关于突出显示关键字或匹配的教程。但似乎没有明确的方法可以解决我的问题。有谁知道如何实现它?
【问题讨论】:
您需要创建一个语法匹配器,然后将其链接到突出显示。
syn match startLineMatch /^\s*\w\+/
hi def link startLineMatch Error
这将突出显示每一行的第一个单词。
/^\s*\w\+/ 匹配行的开头^,然后是任意数量的空格\s*,然后是一个或多个单词字符\w\+。一个单词字符相当于[a-zA-Z]。如果你想匹配任何非空白字符,你可以使用\S 而不是\w。
在这种情况下,我已经重用(链接)了错误的突出显示定义,用于我们的自定义突出显示定义以用于行开始匹配。
如果您试图覆盖现有的突出显示组,此方法将不起作用,因为在语法突出显示中,syn keyword 的优先级高于 syn match。您必须删除现有的关键字突出显示才能使您的新匹配生效。
【讨论】: