如何更改默认语法组的匹配模式?

罗罗

我想更改C ++原始字符串的语法规则,以使原始字符串像不是字符串一样突出显示,但在所有其他情况下,使字符串突出显示相同。这是这个问题的反面(我喜欢7.4的行为)。对于这个问题,不需要C ++知识。我在共享计算机上,无法直接编辑默认语法文件。

syntax list cCppString 清单

cCppString     xxx start=/\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="/ skip=/\\\\\|\\"\|\\$/ end=/$/ end=/"/  excludenl contains=cSpecial,cFormat,@Spell
                   links to cString

syntax list cString显示类似的内容。令人讨厌的模式是R\|LR\|u8R\|uR\|UR

在默认语法文件中,vim80/syntax/c.vim我看到以下几行

syn region>...cString>>.......start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
syn region >..cCppString>.....start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell

我需要删除这些模式,但保持其他所有内容不变。我尝试.vim/after/syntax/c.vim用诸如此类的东西重新定义它们

syn region>...cString>>.......start=+\(L\|u\|u8\|U\)\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend

但这会串联而不是覆盖。

文件火

如果要覆盖语法,请先清除之前的规则,然后添加您的规则。

syn clear cString cCppString
syn region cString
  \ start=+\(L\|u\|u8\|U\)\="+
  \ skip=+\\\\\|\\"+
  \ end=+"+
  \ contains=cSpecial,cFormat,@Spell
  \ extend
syn region cCppString
  \ start=+\(L\|u\|u8\|U\)\="+
  \ skip=+\\\\\|\\"\|\\$+
  \ excludenl
  \ end=+"+
  \ end='$'
  \ contains=cSpecial,cFormat,@Spell

另外请注意,文件要覆盖这些文件的正确位置是~/.vim/after/syntax/c.vim,因为Vim希望获取名为的文件,syntax/c.vim并且~/.vim/after默认情况下包含目录'runtimepath'

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何更改默认用户组?

来自分类Dev

奇怪的模式匹配语法

来自分类Dev

奇怪的模式匹配语法

来自分类Dev

Liquibase:如何更改默认的PostgreSQL模式

来自分类Dev

密谋:如何更改默认模式栏按钮?

来自分类Dev

在模式匹配的默认情况下,如何访问匹配值?

来自分类Dev

Java模式与组匹配

来自分类Dev

使用awk的vlookup:如何将组/模式与ID匹配

来自分类Dev

如何在行组中使用 awk 进行模式匹配

来自分类Dev

模式匹配语法中的歧义

来自分类Dev

如何在Linux中更改用户的默认组?

来自分类Dev

如何在Linux中更改用户的默认组?

来自分类Dev

如何更改ggplot2中组的默认美学

来自分类Dev

语法糖与模式匹配的非穷尽模式

来自分类Dev

一组模式匹配

来自分类Dev

RewriteCond模式组不匹配

来自分类Dev

模式匹配和默认参数

来自分类Dev

更改接口绑定模式的语法

来自分类Dev

如何确保具有替代模式的第二组与第一组匹配?

来自分类Dev

Scala /未过滤的模式匹配语法

来自分类Dev

AWK模式匹配语法C &&!-c

来自分类Dev

根据记录语法进行模式匹配

来自分类Dev

与元组进行模式匹配时的语法(Elixir)

来自分类Dev

Javascript更改以匹配模式

来自分类Dev

如何使用scalafmt为模式匹配语法中的案例配置alignToken?

来自分类Dev

使用“函数”语法执行模式匹配时,如何检索值?

来自分类Dev

Java中的组和模式匹配

来自分类Dev

模式匹配如何工作?

来自分类Dev

::的模式匹配如何实现?