regex - vim-highlight:无法匹配正则表达式lookbehind
问题描述
我正在尝试使用 vim 语法为我的 c++ 项目配置一些自定义突出显示。
我创建了一个名为的文件cpp.vim
并将其放入~/.vim/syntax/
. 为了突出显示函数名称,我把
syn match cCustomParen "?=(" contains=cParen,cCppParen
syn match cCustomFunc "\w\+\s*(\@=" contains=cCustomParen
hi CustomFunc guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=lightyellow ctermbg=NONE cterm=bold
hi def link cCustomFunc CustomFunc
进入文件cpp.vim
,它按预期工作。
现在我试图突出显示类名。
这是我尝试过的:
hi CustomClassName guifg=NONE guibg=NONE guisp=NONE gui=bold ctermfg=lightyellow ctermbg=NONE cterm=bold
syn match cCustomClassName "(?<=^class\s)\w\+"
hi def link cCustomClassName CustomClassName
但是,类名仍然是白色的。
(?<=^class\s)\w\+
正在尝试匹配一个单词,该单词跟在 aclass
和一个空格之后。例如,这个正则表达式可以匹配诸如class Test
ignoring之类的东西class
,这正是正则表达式lookbehind 应该做的。
我已经用一些在线工具测试了这个正则表达式,它运行良好。所以我不知道为什么它不适用于 vim 语法配置。
解决方案
推荐阅读
- tcl - TCL 中“> stdout”和“>@ stdout”的用法差异
- c# - 无法在 C# bot 框架中集成 OpenXML (documentformat.openxml.*),出现错误“Autofac.Core.DependencyResolutionException”
- scala - ObjectMapper readValue(content: String) 如果字符串在 Scala 中为空“”,则给出 MismatchedInputException
- python - 在pyspark中按层次顺序检索行时出现数据框性能问题
- angular - 基于数据源对象数组属性大小的角度材质表行跨列
- spring-boot - 为什么我不能使用 spring-boot-starter-amqp 在消费者端获取correlationId?
- ios - 如何在不重建的情况下在 xcode 中运行单个单元测试方法?
- java - Java altrough 中短语未按预期运行的正则表达式已在线测试
- javascript - 如何检测一个空的 div,然后用 JS 或 css 插入一个 html 按钮
- python - 如何计算python3数据框中列的频率