vim中的JavaScript语法突出显示

有没有人发现VIM语法突出显示的JavaScript是次优的? 我发现,有时我需要滚动以获得调整的语法突出显示,有时它神秘地丢弃所有突出显示。

有没有什么解决办法或方法来解决这个问题? 我正在使用vim 7.1。

您可能想尝试一下改进的Javascript语法突出显示器,而不是使用VIMRUNTIME附带的那个。

那么,我修改了Yi Zhao的Javascript语法 ,并添加了Ajax关键字支持,还突出显示了DOM Methods等。

在这里,它还远远不够完美,因为我还是Vim的新手,但到目前为止,它已经为我工作了。 我的Javascript语法 。 如果你可以修复,添加function,请做。

更新: 我忘记了这些语法高亮只显示,如果你把它们包括在你自己的色彩scheme,就像我在我的Nazca colorscheme。 我将testing是否可以将这些行添加到修改过的语法文件中。

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

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

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

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

 :syn sync fromstart 

我build议阅读下面的文档

 :help syn-sync 

或者只是检查

 :help syntax 

并find关于同步的部分。

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

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

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

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

一旦我find了,我把这行添加到我的.vimrc

 autocmd BufEnter *.html :syntax sync fromstart 

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