Vim:匹配html属性名称

亚历山大申科

以下语法规则:

" #f6266e
syntax match tagOperator "\v\<\/?\w+\s*[^>]*\>" contains=tagFunction,tagFunctionDefinition
hi def link tagOperator Operator

" #a6e22e
syntax match tagFunctionDefinition "\v\<" contained
syntax match tagFunctionDefinition "\v\>" contained
syntax match tagFunctionDefinition "\v/" contained
hi def link tagFunctionDefinition Function

产生这个:

在此处输入图片说明

正如你所看到的HTML属性的名称将突出显示的HTML标记(eachonsubmit)。所以我添加了一个语法来解决这个问题(将它们变成蓝色):

" #66d9ef
syn keyword tagFunction var this
syn match tagFunction "/\v\<\/?\w+\s+\w+\/?>" contained
hi def link tagFunction Define

但是什么也没发生,颜色保持不变。我什至用过containscontained所以我不确定是什么问题。tagFunction则表达式错了吗?

英戈·卡卡特(Ingo Karkat)

您的图案与开始/(以及转义第二/\/,这是没有必要的); 您可能忘记了从搜索历史中进行复制时将其删除:

syn match tagFunction "\v\<\/?\w+\s+\w+/?>" contained

您可以通过首先拉动模式yi",然后将其分配给搜索寄存器来轻松地验证模式:let @/ = @@n然后,命令将跳至下一个匹配项,并(带有:set hlsearch)突出显示所有匹配项。

进一步的批评

请注意,您的tagOperator模式更通用,包括(由于[^>]*部分)任何tagFunction部分。这种歧义很危险,因为现在正确的匹配取决于这两个:syntax命令的顺序在这种情况下,我认为您可以在中创建一个tagAttributecontains tagOperator,并大致定义如下:

:syn match tagAttribute "\w\+={[^}]*}" contained

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式匹配 HTML 属性名称

来自分类Dev

Vim中的斜体HTML属性

来自分类Dev

xslt:匹配部分属性名称

来自分类Dev

xslt:匹配部分属性名称

来自分类Dev

设置名称与XML名称产生不匹配的DOM元素的属性

来自分类Dev

在HTML中匹配img src名称

来自分类Dev

匹配jQuery中的确切属性名称

来自分类Dev

CSS选择器以属性名称开头匹配元素

来自分类Dev

jQuery获取与数据属性名称匹配的所有元素

来自分类Dev

将字符串与类属性名称匹配

来自分类Dev

从对象中提取名称与测试匹配的属性

来自分类Dev

jQuery获取与数据属性名称匹配的所有元素

来自分类Dev

将字符串与类属性名称匹配

来自分类Dev

将条件与JSON数据中的属性名称和值匹配

来自分类Dev

匹配jQuery中的确切属性名称

来自分类Dev

鲁比·诺科吉里。匹配动态属性名称

来自分类Dev

HTML模式属性匹配或允许为空

来自分类Dev

HTML名称属性未使用javascript更改

来自分类Dev

如何遍历html元素原型的属性名称?

来自分类Dev

HTML属性名称中的角插值

来自分类Dev

在输入名称属性中使用HTML实体

来自分类Dev

html:text标记中的变量属性名称

来自分类Dev

使用PHP从html表单访问名称属性

来自分类Dev

如何摆脱HTML文件中Vim中的{{}}匹配错误?

来自分类Dev

Vim搜索并替换html标签以重用匹配数据

来自分类Dev

表单中的字段名称必须与RAILS 4中的模型属性名称匹配?

来自分类Dev

实体框架与实体名称匹配时在属性名称后附加“ 1”

来自分类Dev

列名称与数据属性名称不匹配时,按列进行角度排序

来自分类Dev

仅匹配 HTML 名称正则表达式