50

有没有其他人发现 VIM 的 Javascript 语法突出显示次优?我发现有时我需要滚动以调整语法突出显示,因为有时它会神秘地放弃所有突出显示。

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

4

5 回答 5

32

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

于 2008-09-12T13:28:16.133 回答
16

嗯,我修改了易兆的 Javascript Syntax,并添加了 Ajax 关键字支持,还突出显示了 DOM 方法等。

在这里,它远非完美,因为我还是 Vim 的新手,但到目前为止它对我有用。我的 Javascript 语法。如果你能修复,添加功能,请做。

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

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

于 2011-04-13T17:09:26.193 回答
12

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

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

默认值并不总是对我有用,所以有时我发现自己在发布

:syn sync fromstart

我建议阅读下的文档

:help syn-sync

或者只是检查

:help syntax

并找到关于同步的部分。

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

于 2008-09-12T15:04:26.620 回答
8

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

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

一旦我发现,我将此行添加到我的.vimrc

autocmd BufEnter *.html :syntax sync fromstart

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

于 2016-12-01T17:52:12.583 回答
3

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

于 2008-09-12T17:40:20.083 回答