2008-09-12 135 views
44

是否有其他人发现VIM语法突出显示Javascript次优?我发现有时我需要滚动以获得调整后的语法突出显示,因为有时会神秘地丢弃所有突出显示。vim中的JavaScript语法突出显示

有没有解决此问题的方法或方法?我使用vim 7.1。

回答

29

您可能会试试这个improved Javascript syntax highlighter而不是VIMRUNTIME附带的那个。

+0

不错。它甚至支持突出显示jsdoc。谢谢! – asksol 2008-09-12 14:48:44

+0

小心:我注意到改进后的荧光笔的作者已从最近版本的语法同步开始改变......所以您看到的问题可能会在此荧光笔中发生。看起来像过去,它始终是从开始。 – 2008-09-12 16:30:57

+0

我已经尝试了9/12/08发行版和05/17/07发行版,但都没有改善这种情况。在中间打开一个复杂的JavaScript文件仍然没有突出显示,我必须滚动几页才能让vim开始正确突出显示。 – 2008-11-21 18:36:35

12

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

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

的默认设置并不总是为我工作,所以有时我发现自己发行

:syn sync fromstart 

我建议通过文件下

:help syn-sync 

或阅读只是检查

:help syntax 

并找到关于同步的部分。

在四个可用的基本选项中做出明智的决定。 我保持映射到功能键以在“从开始”和“评论”模式之间切换,并且仅清除同步设置。

3

对于一个快速和脏的修复,有时我只是上下滚动和突出重新调整。 Ctrl + L对于屏幕重绘也可以修复它。

15

好吧,我修改了Yi Zhao's Javascript Syntax,并添加了Ajax关键字支持,还突出了DOM方法和其他。

在这里,它远非完美,因为我还是Vim的新手,但到目前为止它已经为我工作。 My Javascript Syntax。如果你可以修复,添加功能,请做。

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

按照github的JavaScript语法文件的新版本,因为它不再需要修改当前的色彩方案。

3

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

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

有一次,我发现,我加入这行我.vimrc

autocmd BufEnter *.html :syntax sync fromstart 

通过这样做,.html文件将使用整个文件作为背景。因此,无论JS部分多长时间,javascript部分总是会被正确突出显示。希望这可以帮助别人!