根據特定條件,我在VimL中有一組小函數突出顯示一行(或一個單詞)。在Vim中突出顯示單詞/行的性能
您應該考慮功能的工作方式與拼寫(:set spell
)類似,強調何時符合條件。
但是,我發現當高亮線的數量超過75時,移動時會出現明顯的滯後。無論是從一側到另一側還是向上或向下。
我有一些方便的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
這基本上凸顯了該文件的每一個行。一切顯然變得不可能慢。
如果解決了問題,您可以將編輯1移動到答案並選擇它作爲解決方案。 –