在 vim 上将项目设置为更高的突出显示优先级

2023-11-25

我想按照讨论显示非 ASCII 字符here,但是当注释中包含非 ASCII 字符时,语法突出显示会消失。调查了一下这个问题,我在 vim 手册中发现较早启动的项目具有更高的优先级(第三项)。从help :syn-priority:

当多个语法项可能匹配时,使用以下规则:

  1. 当多个“匹配”或“区域”项目在同一位置开始时,最后定义的项目具有优先权。

  2. 关键字的优先级高于匹配项和区域项。

  3. 在较早位置开始的项目优先于在较晚位置开始的项目。

我目前正在使用这个:

syntax match nonascii "[^\x00-\x7F]" 
highlight nonascii cterm=underline ctermfg=red ctermbg=none term=underline

我尝试使用选项给非 ASCII 匹配项更高的优先级nextgroup:

syntax match nonascii "[^\x00-\x7F]" nextgroup=Comment

and contains选项:

syntax match nonascii "[^\x00-\x7F]" contains=ALL

但没有成功。我也尝试暂时禁用评论(highlight clear Comment)没有达到预期的效果(我的评论没有突出显示,但 nonascii 继续未突出显示)。我缺少什么?


是的,您的自定义语法组不匹配,因为注释(或现有语法脚本中的其他语法元素)已匹配。

解决方案是告诉 Vim 你的nonascii组是containedin这些组,这样 Vim 也会尝试在那里匹配(而不仅仅是在无色的顶层)。使事情变得复杂的是,注释的语法组取决于语法脚本,因此也取决于文件类型(命名非常规则)。在以下示例中,我使用了 C 和 Vimscript 文件的名称:

:syntax match nonascii "[^\x00-\x7F]" containedin=cComment,vimLineComment
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 vim 上将项目设置为更高的突出显示优先级 的相关文章

随机推荐

  • SQLAlchemy 列到行转换,反之亦然——这可能吗?

    我正在寻找一种仅 SQLAlchemy 的解决方案 用于将从表单提交收到的字典转换为数据库中的一系列行 每个行对应提交的每个字段 这是为了处理不同应用程序之间差异很大的首选项和设置 但是 它很可能适用于创建类似数据透视表的功能 我在 ETL
  • 停止在 PHP 中使用“global”

    我有一个config php包含在每个页面中 在配置中我创建了一个看起来像这样的数组 config array config site name Site Name config base path home docs public htm
  • 角度动态行跨度

    人数及其手机号码是动态的 我需要在表格中显示这一点 数据可以包含任意数量的用户名和手机号码 dataList pname abc numbers mobile1 123 mobile2 234 pname mno numbers mobil
  • Play/Java 应用程序中的依赖项 javaWs、javaJpa 等来自哪里?

    我正在使用 Java 在 Play Framework 中启动一个新项目 我检查了build sbt文件并且无法理解依赖项名称的来源 libraryDependencies Seq javaJdbc cache javaWs javaJpa
  • SimpleDateFormat:无法解析的日期异常

    在查看了几篇现有的帖子后 我仍然无法让我的 SimpleDateFormat 解析器正常工作 这是代码 SimpleDateFormat df new SimpleDateFormat EEE dd MMM yyyy HH mm ss Z
  • 如何在ARCore中显示PNG图像?

    我想在 Arcore 中显示 2d png 图像 我不想使用 obj smf imgdb 文件和 3D 图像 我已经引用了很多链接 但没有一个链接显示如何使用 Arcore 仅显示 2d png 图像 https github com go
  • Java:在小程序中将pdf文件从URL读取到字节数组/ByteBuffer中

    我试图找出为什么这个特定的代码片段对我不起作用 我有一个小程序 它应该读取 pdf 并使用 pdf 渲染器库显示它 但由于某种原因 当我读取服务器上的 pdf 文件时 它们最终被损坏 我已经通过再次写回文件来测试它 我尝试在 IE 和 Fi
  • PHP将csv列读入数组

    我有一个 php 函数可以让我将 csv 列 COLUMN NOT LINE 读取到数组或字符串中 先感谢您 csv array map str getcsv file data csv header array shift csv Sep
  • 使用 socket.gethostname 时,socket.getfqdn() 和 socket.gethostname() 给出不同的 IP 地址

    我正在运行一个虚拟机 它提供以下值以及运行代码的时间 通过在网站上执行一些操作 socket getfqdn x vps 01 abc it socket gethostname x vps 01 socket gethostbyname
  • 如果没有断言,pytest 会失败吗?

    今天我的测试失败了 但很高兴成功了 因为我忘记了最后一行相当重要的一行 assert actual expected 我希望机器将来能够发现这个错误 有没有办法让 pytest 检测测试函数是否未断言任何内容 并将其视为测试失败 当然 这需
  • firestore 规则中是否有循环?

    我想知道是否有更简单的方法来实现这个规则 刚刚开始尝试 firestore match emails emailId allow write if request resource data attachments size 0 reque
  • 在C#背后的代码中实现javascript确认框

    我想从代码后面实现javascript确认框 我的要求是在一种方法中我需要提出一个确认框 根据结果我需要实现差异功能 例如 如果确认框确定 则添加税费 如果取消则不加税 我正在尝试这样的事情 但它对我没有帮助 ScriptManager R
  • Netcat:使用 nc -l port_number 而不是 nc -l -p port_number

    这个问题是在这个问题之后 在 openSUSE 中工作的套接字在 Debian 中不起作用 在 Debian 系统上使用套接字时 我必须使用 nc l p port number 来模拟我想要与之通信的服务器 如果我使用 nc l port
  • 使用 Oracle 的块过程 PL/SQL

    我有一个程序 我希望只有一个用户可以同时执行该程序 这就是我的想法 考虑通过 dbms lock 使用命名锁 http download oracle com docs cd B28359 01 appdev 111 b28419 d lo
  • RESTful 应用程序中的乐观锁定

    在工作中 我们正在开发一个 RESTful 应用程序 其中数据层将由 Hibernate 处理 但我们不确定如何处理实体的更新 我们计划执行以下操作 1 客户端通过id请求实体2 Hibernate加载实体 请求的字段 始终带有版本 被复制
  • 如何使用 asyncio 连接阻塞和非阻塞代码

    我正在尝试在事件循环之外使用协程函数 在本例中 我想调用 Django 中的一个函数 该函数也可以在事件循环内使用 如果不让调用函数成为协程 似乎没有办法做到这一点 我意识到 Django 被构建为阻塞的 因此与 asyncio 不兼容 尽
  • Pandas 在第 0 个位置插入空行

    假设有以下数据框 A B 1 2 3 4 5 4 5 6 7 8 我想检查一下是否df 0 0 is nan然后在第 0 个位置插入 pd series np nan 所以在上面的情况下将会是 A B 1 2 3 4 5 4 5 6 7 8
  • 什么是 void `std::allocator`?即:`std::allocator`

    自动生成ROS 机器人操作系统 message C 头文件包含如下类型定义 typedef std msgs Header
  • 从“AutoCompleteTextView”获取当前建议

    如何获得当前最热门的建议AutoCompleteTextView 我有它建议的项目 并且我注册了一个文本更改侦听器 我在同一屏幕上还有一个列表 当他们打字时 我想将列表滚动到当前的 最佳 建议 但我不知道如何访问当前的建议 或者至少是最重要
  • 在 vim 上将项目设置为更高的突出显示优先级

    我想按照讨论显示非 ASCII 字符here 但是当注释中包含非 ASCII 字符时 语法突出显示会消失 调查了一下这个问题 我在 vim 手册中发现较早启动的项目具有更高的优先级 第三项 从help syn priority 当多个语法项