如果我运行this,则要突出显示从private
行到end
行的所有内容:
:call matchadd('Error', '^.*private\_.\{-}\(^end\)\@=')
然后它仅在屏幕上显示private
行时才有效。
如果我滚过它,所以它不在屏幕上,当我运行该命令时,没有任何内容突出显示。
这是matchadd
的固有限制吗?有什么方法吗?
答案 0 :(得分:1)
:match
用于突出显示当前在窗口中可见的(短)内容。因此,出于性能原因,它会将搜索范围限制为当前可见的文本。
您尝试做的是滥用该功能。如果您确实需要此功能,请确定:autocmd TextChanged,TextChangedI <buffer>
上涵盖私有函数的行,并使用与所有这些行号匹配的正则表达式调用matchadd()
(例如\%>4l\%<7l.*
)。