Vim中的Javascript语法高亮

Vim中的Javascript语法高亮

Javascript syntax highlighting in vim

还有其他人发现VIM的Java语法突出显示次优吗? 我发现有时需要滚动浏览以调整语法突出显示,因为有时它会神秘地删除所有突出显示。

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


您可能想尝试使用这种改进的Javascript语法突出显示器,而不是VIMRUNTIME附带的工具。


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

在这里,它远非完美,因为我还是Vim的新手,但到目前为止它对我来说还是有用的。我的Javascript语法。如果可以解决,请添加功能。

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

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


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

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

默认值并不总是对我有用,因此有时我发现自己正在发出

1
:syn sync fromstart

我建议通读下面的文档

1
:help syn-sync

或只是检查

1
:help syntax

并找到有关同步的部分。

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


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

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

找到该行后,便将此行添加到我的.vimrc中:

1
autocmd BufEnter *.html :syntax sync fromstart

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


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


推荐阅读