vim的2个高亮匹配函数
matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
在当前窗口,定义
待高亮模式,会用{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")
要删除该模式
:call matchdelete(m)
用|getmatches()
|可得到|matchadd()
|和|:match
|定义的匹配列表.|clearmatches()
|可一次删除所有
匹配.
matchaddpos()
matchaddpos({group},{pos}[,{priority}[,{id}[,{dict}]]])
与|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)
//删匹配
|getmatches()
|返回|matchaddpos()
|添加的匹配
.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现