vim的2个高亮匹配函数
Posted fqbqrr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()
|添加的匹配
.
以上是关于vim的2个高亮匹配函数的主要内容,如果未能解决你的问题,请参考以下文章