我在VimL中有一组小函数,根据特定条件突出显示一行(或一个单词)。
您应该考虑函数的工作方式与拼写(:set spell
)类似,并在条件满足时加下划线。
我有一些方便的AutoCommands
我默认启用(例如,回显为什么突出显示该行),但即使所有这些都被禁用,只要我调用突出显示所有内容的函数,我可以说有一个巨大的滞后。
这是我用来突出显示的一个词:
call matchadd('MyCheck', '^\%'. line . 'l\_.\{-}\zs\k\+\k\@!\%>' . column . 'c')
这就是我用来突出整行的原因
call matchadd('MyCheck', '\%' . line . 'l\n\@!')
我用作确定延迟的参考的75号只是一个参考,对我来说这是一个很好的选择,但只是为了证明大多数事情变得越来越糟。
我还使用SpellBad
突出显示MyCheck
,但严重怀疑这会导致任何问题。
我能做些什么来避免滞后? matchadd
是最佳选择吗?
编辑: 为了确保它不是我的任何功能或代码做一些奇怪的事情,我打开了一个500行文件并做了这个:
highlight link MyCheck SpellBad
for line in range(line('$'))
call matchadd('MyCheck', '\%' . line . 'l\n\@!')
endfor
这基本上突出显示了文件中的每一行。一切显然都很慢。
答案 0 :(得分:0)
取消设置游标线会对性能产生极大的(正面)影响。
我做了:set nocursorline
现在我的动作(无论突出显示)都像以前一样活泼。