还有其他人发现 VIM 的 Javascript 语法突出显示效果不佳吗?我发现有时我需要滚动才能调整语法突出显示,因为有时它会神秘地删除所有突出显示。

有没有任何解决方法或方法来解决这个问题?我使用的是 vim 7.1。

有帮助吗?

解决方案

你可能想尝试这个 改进的 Javascript 语法荧光笔 而不是 VIMRUNTIME 附带的那个。

其他提示

嗯,我已经修改了 赵一的 Javascript 语法, ,并添加了 Ajax 关键字支持,还突出显示了 DOM 方法等。

就是这样,它远非完美,因为我对 Vim 还很陌生,但到目前为止它对我有用。 我的 JavaScript 语法. 。如果您可以修复、添加功能,请这样做。

更新: 我忘记了这些语法突出显示仅当您将它们包含在您自己的颜色方案中时才会显示,就像我在我的中所做的那样 Nazca 色彩方案。我将测试是否可以将这些行添加到修改后的语法文件中。

遵循新版本的 javascript 语法文件 github, ,因为不再需要修改当前的配色方案。

语法着色同步可能需要调整。我发现在某些情况下我需要改变它。

语法同步(“:help syn-sync”)控制 vim 如何跟踪和刷新其对着色代码的解析,以便它可以开始在文件中的任何位置进行绘制。

默认值并不总是适合我,所以有时我发现自己发出

:syn sync fromstart

我建议阅读下面的文档

:help syn-sync

或者只是检查

:help syntax

并找到有关同步的部分。

在四个可用的基本选项中做出明智的决定。我维护到功能键的映射,以在“fromstart”和“ccomment”模式之间切换,以及仅清除同步设置。

这是一篇非常旧的文章,但我也经历过同样的事情:有时,在查看 javascript 部分时,语法高亮会停止工作。 .html 文件。正如OP提到的,一个快速的解决方法是向上滚动,然后神奇地事情会再次开始突出显示。

今天我找到了根本问题和一个很好的解决方案。在 Vim 中,语法突出显示使用上下文来导出正确的突出显示,其中上下文由前面的行定义。可以通过发出以下命令来指定使用当前行之前的多少行 :syntax sync minlines=200. 。在这种情况下,它将使用最多 200 行之前的行作为上下文。可以通过运行来使用整个文件(对于长文件来说可能会很慢) :syntax sync fromstart.

一旦我发现这一点,我将这一行添加到我的 .vimrc:

autocmd BufEnter *.html :syntax sync fromstart

通过这样做, .html 文件将使用整个文件作为上下文。因此,无论 JS 部分有多长,javascript 部分都将始终正确突出显示。希望这对其他人有帮助!

为了快速而肮脏的修复,有时我只是上下滚动并重新调整突出显示。 控制键+L 对于屏幕重绘也可以修复它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top