Vim 语法文件与 \zs 不匹配

2024-03-27

我试图通过更改 fsharp 语法文件中的这一行(来自this https://github.com/fsharp/vim-fsharp插件)来自:

syn match    fsharpModule     "\%(\<open\s\+\)\@<=[a-zA-Z.]\+"  

to

syn match    fsharpModule     "\%(\<open\s\+\)\zs[a-zA-Z.]\+"

因为“\@

为了速度,通常最好避免这种多重。尝试使用“\zs”代替 |/\zs|。

但是,这不起作用,并且没有突出显示

open SomeModule  

怎么会这样?在使用第一个和第二个匹配模式时,在 vim 中进行常规搜索(使用 /)会突出显示“SomeModule”。


这是由语法包含引起的,并且因为存在另一个语法组open您试图断言的关键字。

在语法高亮中,\zs只影响结果(Vim 将用语法组突出显示的内容);整个模式(即包括之前的文本\zs) 在与其他语法组的关系时被视为匹配。 (帮助中没有明确记录此实现细节。)积极的后向断言 (\%(...\)\@<=)相比之下,既不包含在结果中,也不包含在实际匹配中。这解释了您所看到的行为差异。 (它与 @rmunn 怀疑的可选分组无关,也与 @Sergio 的答案中的多行无关,如\s\+不允许中间有换行符。)

我认为这里易于实现更重要,所以使用应该没问题\@<=,即使帮助建议\zs。如果您愿意完全重组语法脚本,则可以通过以下方式解决这个问题,假设有一个syntax keyword fsharpOpen open某处:

syntax keyword fsharpOpen nextgroup=fsharpModule skipwhite open
syntax match fsharpModule "[a-zA-Z.]\+" contained
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vim 语法文件与 \zs 不匹配 的相关文章

  • 电话号码的正则表达式,不允许全零

    需要您的正则表达式帮助 我当前的正则表达式是 d 8 最小长度为 8 不允许包含字母 特殊字符和空格 我还想禁止全零 如 00000000 Thanks 该模式应该可以满足您的需求 0 d 8 The 0 部分是负前瞻 将阻止仅输入零 Ex
  • 如何提取括号(圆括号)之间的文本?

    我有一根绳子User name sales 我想提取括号之间的文本 我该怎么做 我怀疑子字符串 但我无法弄清楚如何阅读 直到右括号 文本的长度会有所不同 如果您希望远离正则表达式 我能想到的最简单的方法是 string input User
  • 如何正确转义反斜杠以匹配单引号和双引号 PHP 正则表达式模式中的文字反斜杠

    为了匹配字面上的反斜杠 很多人和PHP 手册 http www php net manual en regexp reference escape php说 总是三重转义吧 就像这样 Note 单引号和双引号 PHP 字符串具有反斜杠的特殊
  • PHP使用正则表达式查找字符串

    我已经阅读了多个有关正则表达式的教程 但它只是不会留在我的脑海中 我永远无法让我的模式发挥作用 希望有人能帮忙 我有一个 php 变量 content 我需要在其中找到如下所示的特定模式 图库 名称 文件夹 我想搜索 starting wi
  • 使用 Perl 计算字符串中的连续字符数

    我有一个包含多个连续字符序列的字符串 例如 aaabbcccdddd 我想将其表示为 a3b2c3d4 到目前为止 我已经想出了这个 usr bin perl str aaabbcccdddd str s 1 1 g print str n
  • 使用正则表达式解析日志文件

    我目前正在为我们的内部日志文件 由 log4php log4net 和 log4j 生成 开发一个解析器 到目前为止 我有一个很好的正则表达式来解析日志 除了一个烦人的一点 一些日志消息跨越多行 我无法正确匹配 我现在的正则表达式是这样的
  • MS-Access 查询中的语法错误(缺少运算符)

    以下查询给了我 missing operator 语法错误 所需的输出是表中数据的组合 dbo tbl 和意见 vw 我用过的所有钥匙都存在 有任何想法吗 SELECT dbo tbl BOD fpartno AS PartNumber d
  • 正则表达式文字-文本范围

    有什么方法可以向正则表达式指示要显式搜索的文本块吗 我问这个问题是因为我必须匹配一段非常非常长的文本 其中包含各种元字符 并且 并且必须完全匹配 然后是一些灵活的内容 足以值得使用正则表达式 然后是更多文本必须完全匹配 冲洗 重复 不用说
  • 多语言网站的 .htaccess 规则

    我正在重新设计 PHP 多语言网站 en es de fr ru 的 URL 该网站的 URL 是这样的 www mysite com page www mysite com page subpage1 www mysite com pag
  • 使用 SqlBulkCopy 和 F# 在 SQL 中导出矩阵

    我想将大量数据从 F 传输到 SQL 表 基本上我的 F 代码创建了一个三列矩阵 UserID ProductID and price 和N行 我想将其 复制 粘贴 到数据库中 我尝试了多种选择 但最终 从 F 传输数据非常慢 10000
  • Ruby Regex 舍入尾随零

    我正在寻找一个正则表达式来删除十进制数字中的尾随零 它应该返回以下结果 0 0002300 gt 0 00023 10 002300 gt 10 0023 100 0 gt 100 1000 gt 1000 0 0 gt 0 0 gt 0
  • 我可以使用正则表达式匹配粗体文本吗?

    我有一个文本打击 我想匹配所有粗体文本 因此 在不依赖前缀 即序列号 的情况下 我可以使用正则表达式仅匹配粗体字符吗 斯伯丁 K L Buchholz B A Bergman L E Druid H Fris n J 法医学 核试验写在牙齿
  • 正则表达式是否用于构建解析器?

    这只是出于好奇的一个问题 因为我最近需要越来越多地解析和使用正则表达式 似乎 对于我在搜索中遇到的有关某种解析的问题 有人总是最终说 当问一些与正则表达式相关的问题 正则表达式对此不好 请使用这样那样的解析器 因为我已经更好地理解了正则表达
  • F# 正确使用序列缓存

    我正在尝试将 Seq cache 与我制作的函数一起使用 该函数返回最多为 N 的素数序列 不包括数字 1 我无法弄清楚如何将缓存的序列保留在范围内 但仍然使用它在我的定义中 let rec primesNot1 n 2 n gt Seq
  • 如何在 LINQ 中执行 String.Replace?

    这是我正在尝试做的事情 但没有成功 我想打电话from x in list1 and join y in list2 where regex Match x Value Success 完成这些步骤后我需要打电话String Replace
  • nginx位置正则表达式,匹配多次

    如何在 nginx 位置正则表达式中多次匹配 看来 x x 语法永远不起作用 例如 location abc w 1 3 从来不工作 您必须引用包含以下内容的位置 or 人物 location abc w 1 3 否则 nginx 将其解析
  • Perl 的 grep 函数如何与正则表达式一起使用?

    以下 grep 函数如何工作 什么作用 0o1Iil do chars grep 0o1Iil 0 9 A Z a z use Data Dumper print Dumper chars 在 chars中生成以下内容 VAR1 0 VAR
  • Python正则表达式替换除特定单词之外的所有内容

    我正在尝试执行以下操作用正则表达式 import re x re compile going you words to replace s I am going home now thank you string to modify pri
  • ASP.NET MVC 6 中的属性路由正则表达式约束错误

    我添加以下路由属性 HttpGet Route add Route id int inn regex 0 9 incBalance range 0 1 dateSet datetime dateNext datetime public IA
  • c++11 正则表达式比 python 慢

    嗨我想了解为什么以下代码使用正则表达式进行分割字符串分割 include

随机推荐

  • 在 TeamCity 代理的 Windows 服务下运行时,MicrosoftWebDriver 构建时失败

    使用 Windows 10 专业版 MicrosoftWebDriver 版本 14393 我在使用 Edge 运行 UI 测试套件时遇到问题 而 Chrome Firefox 和 IE11 都可以 在标准 Windows 开发环境中运行时
  • 在 VBA 中更改 HTML 电子邮件正文字体类型和大小

    我有一个 VBA 脚本 当在给定工作表中按下 VBA 按钮时 该脚本会生成并发送电子邮件 该脚本当前以相对较小的字体生成电子邮件 我想知道是否有办法将字体设置为 Calibri 并将文本设置为 11 这是当前的 VBA 脚本 Private
  • Backbone 对象渲染没有方法 apply - 绑定问题

    所以我在我的 AppView 中这样做 var flowerModel new app DataModel title flower values tulip rose dandelion dataToShow tulip rose dan
  • 确定 macOS Catalina、Big Sur 及更高版本中的卷组

    从 macOS 10 15 Catalina 开始 用户看到的卷实际上可能由多个卷组成 例如系统卷和数据卷 我正在编写一个需要单独识别这些卷的工具 因为当使用特定的文件操作时 例如searchfs and fts read 它们不跨越这样的
  • Visual Studio 2017,无法调试或运行应用程序

    今天我打开计算机后 我根本无法调试或运行该应用程序 如果我发布该项目 它就可以正常工作 但如果我从 Visual Studio 运行它 它就会卡住加载并且 Visual Studio 停止响应 以下是我强制退出应用程序时出现的错误 抛出异常
  • 添加到 WordPress 主题时 Bootstrap 日期选择器和时间选择器不起作用

    真的希望你能帮我解决这个问题 我迷路了 我已经添加bootstrap datepicker js https github com eternicode bootstrap datepicker and bootstrap timepick
  • .NET 中有自动排序的列表吗?

    我有一个收藏Layers它们有名字和颜色 我想做的是首先根据颜色对它们进行排序 然后根据它们的名称进行排序 class Layer public string Name get set public LayerColor Color get
  • 美丽汤 Unicode 编码错误

    我正在尝试使用特定 HTML 文件执行以下代码 from BeautifulSoup import BeautifulSoup import re import codecs import sys f open test1 html htm
  • 使用Delphi创建Win7跳转列表[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试使用 Delphi 在 Windows 7 上为我的应用程序创建跳转列表 我找到了这个 C 代码 但我不知道如何将其转换为
  • 循环迭代器命名约定[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们知道 不知何故 我们使用i and j循环中的变量非常常见 如果一个人需要双for循环 很可能会使用如下所示的内容 for int i 0
  • 单击

    看起来 active仅适用于background单击时的瞬间颜色
  • Ecto.Migrations.references/2 中的 on_delete 选项有什么作用?

    The 埃克托文档 https hexdocs pm ecto sql Ecto Migration html references 2描述了可用的选项references 2 但没有记录这些选项的作用 可用的选项有 nothing del
  • 如何在 JavaScript 中将公历日期更改为波斯日期?

    谁能帮我在 JavaScript 中将公历日期更改为波斯日期 我想在 HTML 和 JavaScript 中使用它 您可以使用toLocaleDateString let today new Date toLocaleDateString
  • DICOM 文件压缩

    我的工作需要使用 DICOM 文件 每个 DICOM 文件由单个目录中的许多 dcm 文件组成 我需要通过网络发送这些文件 由于文件很大 这个过程在某种程度上是这样的 我也是一名程序员 我想知道压缩此类文件的理想方法是什么 我说的是在本地计
  • Ruby - 如果 url 是重定向,如何下载文件?

    如果 url 是重定向 Ruby 如何下载文件 我正在尝试下载这个网址 soundcloud com stereo f cohete amigo download 重定向是这样的 ec media soundcloud com HNIGsu
  • 如何在 templatete js 之后包含组件 js

    我在 templatete index php 上添加了 javascript doc JFactory getDocument doc gt addScript this gt baseurl templates this gt temp
  • 获取终端中可用线路的数量

    如何找到终端中的可用线路数量 最好以跨平台的方式 但欢迎任何建议 甚至特定于操作系统 终端的高度和长度可以使用以下公式找到os https docs python org 3 library os html querying the siz
  • 暂停本地通知

    我正在开发一个警报应用程序 并为此使用本地通知 现在我想为我的闹钟添加贪睡功能 我在Google上搜索发现iPhone不支持此类功能 但还有其他方法可以做到这一点吗 据我所知 当通知窗口弹出时 您无法添加自定义行为 但 你可以这样尝试 用户
  • 我们如何创建一个更大的中心 UITabBar Item

    我想知道我们如何创建一个更大的中心 UITabBar 如下图所示 真的很漂亮 单击要突出显示的特定选项卡栏项目的视图控制器内的选项卡栏按钮 删除文本 只需将标签栏按钮的图像插入顶部设置为 25即可 就像下图一样 在那之后 goto asse
  • Vim 语法文件与 \zs 不匹配

    我试图通过更改 fsharp 语法文件中的这一行 来自this https github com fsharp vim fsharp插件 来自 syn match fsharpModule