我有一个包含HTML和JavaScript的HTML文件。当我折叠一些代码片段时,语法突出显示效果不佳。屏幕截图如下:
Line79功能setColor(颜色)未正确突出显示。有没有办法解决它?
BTW,我在Windows 7中使用GVIM 7.2。
谢谢!
答案 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进行非常慢的重绘 文件是一条长行。