Gvim 无法正确突出显示语法,如何修复?

发布于 2024-11-08 06:45:11 字数 239 浏览 0 评论 0原文

我有一个 HTML 文件,其中包含 HTML 和 JavaScript。当我折叠一些代码片段时,语法突出显示效果不佳。截图如下: 在此处输入图像描述

Line79 函数 setColor(color) 未正确突出显示。有什么办法可以解决吗?

顺便说一句,我在 Windows 7 中使用 GVIM 7.2。

谢谢!

I have a HTML file which contains both HTML and JavaScript. When I folded some code snippets, the syntax highlight didn't work well. Screenshot as following:
enter image description here

Line79 function setColor(color) is not correctly highlighted. Is there any way to fix it?

BTW, I am using GVIM 7.2 in windows 7.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

羁〃客ぐ 2024-11-15 06:45:11

当 Vim 打开 html 文件时,它会在整个文件中应用 html 突出显示。当 html 文件中有单独的语言时,您需要定义语法区域,让 Vim 知道文件的某些部分将以与文件扩展名标识的语言不同的方式突出显示。我在此处回答一个 SO 问题时描述了如何执行此操作: 在 VIM 中,如何在同一个文件中混合 jinja 和 javascript 的语法/标识规则?

另请参阅以下位置的文档: :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

When Vim opens an html file it applies html highlighting throughout the file. When you have a separate language in the html file you need to define syntax regions to let Vim know that parts of the file are to be highlighted differently from the language identified by the file extension. I described how to do this in an answer to an SO question here: In VIM, how can I mix syntax/ident rules of both jinja and javascript in the same file?

Also review the docs at :h syn-include.

Indenting is similar. That is, Vim will apply html indenting rules to everything within the file unless you tell it to indent the Javascript region differently.

NOTE: Maybe since html with embedded javascript is so common the html syntax files may by default support embedded javascript. The tip linked below suggests using :set filetype htmlm4 to get proper highlighting, although a commenter says that should not be necessary:
http://vim.wikia.com/wiki/Syntax_highlighting_for_HTML_with_embedded_Javascript

雨巷深深 2024-11-15 06:45:11

:synsync fromstart

(另请参阅help syn-sync-first

:syn sync fromstart

(See also help syn-sync-first)

清风夜微凉 2024-11-15 06:45:11

可能是你的 mapInit() 函数中有一行的长度超过了 vim 的 'synmaxcol' 设置。请注意,第 77 行(右大括号)的突出显示也不正确。

set synmaxcol

来自vim的帮助:

要搜索的最大列
语法项。长行文本
此列未突出显示后
并且以下行可能不是
正确突出显示,因为
语法状态已清除。这有助于
避免 XML 重绘速度过慢
文件是一长行。

It may be that you have a line in the mapInit() function whose length exceeds vim's 'synmaxcol' setting Notice the highlighting is incorrect on line 77 too (the closing brace).

set synmaxcol

From vim's help:

Maximum column in which to search for
syntax items. In long lines the text
after this column is not highlighted
and following lines may not be
highlighted correctly, because the
syntax state is cleared. This helps to
avoid very slow redrawing for an XML
file that is one long line.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文