Gvim没有正确突出语法,如何修复它?

时间:2011-05-18 02:42:53

标签: vim syntax-highlighting

我有一个包含HTML和JavaScript的HTML文件。当我折叠一些代码片段时,语法突出显示效果不佳。屏幕截图如下: enter image description here

Line79功能setColor(颜色)未正确突出显示。有没有办法解决它?

BTW,我在Windows 7中使用GVIM 7.2。

谢谢!

3 个答案:

答案 0 :(得分:3)

当Vim打开一个html文件时,它会在整个文件中应用html突出显示。当您在html文件中使用单独的语言时,您需要定义语法区域,以便让Vim知道文件的某些部分的突出显示与文件扩展名所标识的语言不同。我在这里回答SO问题时描述了如何做到这一点:In VIM, how can I mix syntax/ident rules of both jinja and javascript in the same file?

另请查看:h syn-include上的文档。

缩进是类似的。也就是说,Vim会将html缩进规则应用于文件中的所有内容,除非您告诉它以不同的方式缩进Javascript区域。

注意:也许因为带有嵌入式javascript的html如此常见,html语法文件可能默认支持嵌入式javascript。下面链接的提示建议使用:set filetype htmlm4来获得正确的突出显示,尽管评论者说这不应该是必要的: http://vim.wikia.com/wiki/Syntax_highlighting_for_HTML_with_embedded_Javascript

答案 1 :(得分:2)

:syn sync fromstart

(另见help syn-sync-first

答案 2 :(得分:1)

你可能在mapInit()函数中有一行,其长度超过了vim的'synmaxcol'设置注意第77行的突出显示也是错误的(结束括号)。

set synmaxcol

来自vim的帮助:

  

要搜索的最大列   语法项目。在长队中的文字   此列未突出显示后   以下行可能不是   突出正确,因为   语法状态被清除。这有助于   避免对XML进行非常慢的重绘   文件是一条长行。