Answers:
Vim语法文件已在v7.4.649(2015年3月)中更新。因此,如果您有此补丁程序,则无需执行此操作。
解决此问题的最简单方法是下载较新的syntax/java.vim
文件并将其放入,~/.vim/syntax/java.vim
以便覆盖默认文件$VIMRUNTIME/syntax/java.vim
。您还需要html.vim
基于此链接进行符号链接才能起作用java.vim
:
ln -s /usr/share/vim/vim74/syntax/html.vim ~/.vim/syntax/
我/usr/share/vim/vim74/syntax/java.vim
有这个:
syn match javaError "<<<\|\.\.\|=>\|||=\|&&=\|[^-]->\|\*\/"
看到[^-]->
零件了吗?这会导致错误突出显示。
您可以通过添加~/.vim/after/syntax/java.vim
文件来重写此规则,该文件应使用相同的模式减去lambda语法:
syn clear javaError
syn match javaError "<<<\|\.\.\|=>\|||=\|&&=\|\*\/"
对于奖励积分,我们可以添加以下行以突出显示此功能:
syn match javaFuncDef "[^-]->"
考虑提交错误报告。:help bug-reports
解释如何。似乎有更多(新?)结构被突出显示为错误,例如...
in public static void main(String... args)
。
无需编辑默认语法文件。该VIM的Java插件支持这个功能。像其他任何插件一样进行安装,lambda运算符将正确突出显示。
java_highlight_functions
已启用。如果您对一致性不满意,可以在syn match
通话之前进行检查:if exists("java_highlight_functions") | syn match javaFuncDef "[^-]->" | endif