gvim长多行字符串高亮显示

gvim长多行字符串高亮显示,vim,syntax-highlighting,Vim,Syntax Highlighting,我在python源代码中广泛使用多行docstring来包含doctest。不幸的是,VIM/GVIM似乎很难用语法高亮显示,偶尔丢失它的位置并忘记它位于字符串文字的中间,并突出显示“从字符串到源的翻转”和“源到字符串”。p> 我可以上下滚动,vim通常会解决这个问题,但有时需要几次尝试 除了缩短我的docstrings之外,还有什么方法可以帮助vim保持这些长文本上的高亮显示有序吗?:syntax syn控制vim如何同步应在文本中特定点应用的语法状态(:help syn sync)。要获得最

我在python源代码中广泛使用多行docstring来包含doctest。不幸的是,VIM/GVIM似乎很难用语法高亮显示,偶尔丢失它的位置并忘记它位于字符串文字的中间,并突出显示“从字符串到源的翻转”和“源到字符串”。p> 我可以上下滚动,vim通常会解决这个问题,但有时需要几次尝试


除了缩短我的docstrings之外,还有什么方法可以帮助vim保持这些长文本上的高亮显示有序吗?

:syntax syn
控制vim如何同步应在文本中特定点应用的语法状态(
:help syn sync
)。要获得最准确的同步(但这会降低vim的速度),请尝试:

或者,如果您希望在发现错误时手动同步,请尝试此命令(您可以将其映射到键盘快捷键):

您可能还会发现
minlines
很有用。从
:帮助同步

如果给出了“minlines={N}”参数,则解析总是至少开始 倒了那么多行。如果解析可能需要几分钟的时间,则可以使用此选项 行之前,或无法使用同步时

因此,将其放入.vimrc可能会帮助您:

syntax sync minlines=500
编辑:找到此页面,其中包含您需要的所有内容:

您可能不希望对正在编辑的所有类型的代码都使用“从开始同步”,只需要html。如果是这种情况,请将其添加到vimrc中:

autocmd FileType html autocmd BufEnter * :syntax sync fromstart

我经常(但并不总是)使用
syn-sync-fromstart
,甚至在编辑几百KB的JavaScript文件时,我也从未真正注意到任何减速。现代硬件相当强大。对于HTML,我发现它特别有用。作为参考,在具有8gig RAM和快速硬盘驱动器的core i7上,如果超过约60k的正常长度行(文件大小约为2.5MB),则可以感觉到速度减慢。
syntax sync minlines=500
autocmd FileType html autocmd BufEnter * :syntax sync fromstart