• vim的2个高亮匹配函数


    matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
    
    • 1

    在当前窗口,定义待高亮模式,会用{group}高亮组高亮.返回可用matchdelete()(ID).其中ID是和窗口绑定的.
    匹配区分大小写且带魔术的,但可在{pattern}里显式关闭.不用'magic','smartcase''ignorecase'选项."Conceal"值可隐藏匹配.
    可选的{priority}参数指定匹配优先级.高优先级的匹配的高亮比低优先级匹配优先.优先级用整数指定(负数也可以).如果未指定{priority}参数,缺省优先级为10.'hlsearch'优先级为,这样所有正优先级的匹配都可以覆盖它.语法高亮采用不同机制,不论优先级如何,匹配总会否决语法高亮.

    可选的{id}参数允许请求特定的匹配ID.如果指定的ID已用,报错,且不加入该匹配.ID用正整数指定(不含零).ID1,2和3分别为|:match|,|:2match|和|:3match|命令保留.如果未指定{id}或为-1,matchadd()自动选择可用ID.

    可选的{dict}参数允许更多定制.目前,可指定特定匹配的可使用hl-Conceal高亮匹配来显示的隐藏字符.字典有以下成员:

    conceal:要显示的特殊字符,而非匹配(仅用于hl-Conceal高亮的匹配).
    window:不使用当前窗口,而使用指定窗口号或窗口ID的其它窗口.匹配数目不限,而:match则有此局限.错误,则返回-1.
    示例:

    :highlight MyGroup ctermbg=green guibg=green
    :let m = matchadd("MyGroup", "TODO")
    
    • 1
    • 2

    要删除该模式

    :call matchdelete(m)
    
    • 1

    用|getmatches()|可得到|matchadd()|和|:match|定义的匹配列表.|clearmatches()|可一次删除所有匹配.

    matchaddpos()

    matchaddpos({group},{pos}[,{priority}[,{id}[,{dict}]]])
    
    • 1

    与|matchadd()|相同,但需要{pos}位置列表而非匹配模式.比|matchadd()|更快.主要用于需要快速增加删除匹配的场合,如匹配括号高亮.
    {pos}列表可为:
    1,数值.高亮整行.首行行号为1.
    2,单个数值列表.如[23].高亮有该数行.
    3,包含两个数值列表,如[23,11].前面是行号,后面是列号(首列为1,值对应|col()|返回的字节索引).则高亮此位置字符.
    4,包含三个数值列表,如[23,11,3].同上,但第三个数给出高亮字节长度.数组最大为8个.返回-1表错误.
    示例:

    :highlight MyGroup ctermbg=green guibg=green
    :let m = matchaddpos("MyGroup", [[23, 24], 34])
    :call matchdelete(m)
    //删匹配
    
    • 1
    • 2
    • 3
    • 4

    |getmatches()|返回|matchaddpos()|添加的匹配.

  • 相关阅读:
    【C++游戏引擎Easy2D】基于基础类型学习使用核心Game+Window+Input详解
    拼多多助农 商业之外的底色
    Spring Web MVC入门
    台式机卡死救机心情点滴记录
    Android Kotlin 协程详解
    SQL Server 防病毒软件配置
    跨境电商独立站怎么做?好做吗?
    安卓系统中的进程介绍
    HTTP/1.1协议中的响应报文
    LTV预测算法从开发到上线,浅谈基于奇点云DataSimba的MLOps实践
  • 原文地址:https://blog.csdn.net/fqbqrr/article/details/126289197