gvim长多行字符串突出显示

Sin*_*ion 14 vim syntax-highlighting

我在我的python源代码中广泛使用多行文档字符串来包含doctests.不幸的是,vim/gvim似乎很难用语法高亮显示,偶尔丢失它的位置并忘记它位于字符串文字的中间,并突出显示从字符串到源和源到字符串"翻转".

我可以向上滚动到顶部并再次向下滚动,而vim 通常可以解决问题,但有时需要几次尝试.

除了让我的文档更短,有没有办法帮助vim按顺序保持对这些长文字的突出显示?

Pon*_*ars 18

:syntax syn控制Vim如何同步应该在text(:help syn-sync)中的特定点应用的语法状态.为了获得最准确的同步(但这会降低vim的速度),请尝试:

autocmd BufEnter * :syntax sync fromstart
Run Code Online (Sandbox Code Playgroud)

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

:syntax sync fromstart
Run Code Online (Sandbox Code Playgroud)

您可能也觉得minlines有用.从:help syn-sync

如果给出"minlines = {N}"参数,则解析总是至少向后开始那么多行.如果解析在正确之前可能需要几行,或者无法使用同步,则可以使用此方法.

所以将它放在你的.vimrc中可能会对你有所帮助:

syntax sync minlines=500
Run Code Online (Sandbox Code Playgroud)

编辑:找到这个页面,其中包含您需要的一切:http: //vim.wikia.com/wiki/Fix_syntax_highlighting