Groovy中的Vim错误语法高亮显示
当我在键入一些算术表达式(如Groovy中的Vim错误语法高亮显示,vim,groovy,syntax-highlighting,vim-syntax-highlighting,Vim,Groovy,Syntax Highlighting,Vim Syntax Highlighting,当我在键入一些算术表达式(如val1/val2)时使用单斜杠(/)时,我的vim将其视为多行注释(/*)。结果如下: 我现在可以通过键入来逃避它/在该行的末尾(关闭注释),但它仍然很烦人,我希望我的vim能够正常工作:) 我尝试过为groovy使用另一个vim语法突出显示包,我尝试过在my.vimrc中关闭文件类型插件,我尝试过用我的设置清除vim并重新安装,但问题仍然存在。解决方案: 正如@cfrick所指出的,vim(我的版本:7.4)将“/”视为groovy中正则表达式的开头。解决办法是
val1/val2
)时使用单斜杠(/
)时,我的vim将其视为多行注释(/*
)。结果如下:
我现在可以通过键入来逃避它/代码>在该行的末尾(关闭注释),但它仍然很烦人,我希望我的vim能够正常工作:)
我尝试过为groovy使用另一个vim语法突出显示包,我尝试过在my.vimrc中关闭文件类型插件,我尝试过用我的设置清除vim并重新安装,但问题仍然存在。解决方案:
正如@cfrick所指出的,vim(我的版本:7.4)将“/”视为groovy中正则表达式的开头。解决办法是编辑
/usr/share/vim/vim74/syntax/groovy.vim
在260-261线附近有
syn region groovyString start='/[^/]' end='/' contains=groovySpecialChar,groovyRegexChar,groovyELExpr
把开始改成
start='/[^*/]'
编辑:将regexp中的空格改为*作为@calid在下面的注释中的建议
开始='/[^/]'
(即在此处添加空格。)
现在看起来好多了。另一方面,它现在不会突出显示以空格开头的regexp,但对我来说没关系。至少比以前好多了
这对mi找到我的解决方案有很大帮助:
我刚刚签入了vim 7.3.762,一切正常。可能有一些插件中断突出显示。您希望在vimrc中的:filetype plugin indent on
。这是否发生在vim-u NONE
?我可以用7.4.273确认-因此这可能是一个regeression,您应该报告它。乍一看,它可能是4339:22fa3049e934
,并更改为groovyELExpr
,所以vim现在认为
启动了一个regexp。@cfrick您是对的:)。这就是解决办法。但是,我不知道如何投票支持你:(FDinoff,vim-u NONE确实阻止了这个bug,但它也阻止了任何语法突出显示:)。正如参考问题中已经提到的,你是否愿意报告这个问题?由于其他语言(如perl)对regexp也有类似的语法,所以可能会有希望。是的,我报告过,其余的现在由vim_dev决定,也许在未来的版本中,它将在默认情况下解决。更新-我向groovy.vim语法文件的维护者发送了一封电子邮件,因此,希望在下一个版本中可以解决这一问题。/
对于groovy slashy字符串是完全有效的,实际上应该改为'/[^*/]'
,因为/*
是当前中断的多行注释开头,/*
作为正则表达式的开头毫无意义。'/[^\*/]'
最适合我。它不仅修复了OP给出的划分示例,还修复了文档注释中由HTML结束标记引起的划分示例。它还突出显示正则表达式字符串。