2011-10-06 52 views
3

我在VIM中启用了语法高亮功能,它能够正确识别所有类型的文件,并使所有内容看起来都很美。在一个PHP文件中,我正在做一个preg_match(),中间包含?>的正则表达式字符串,而VIM认为这是我的文件的PHP代码部分的结尾,以及它在没有颜色的情况下变得非常粗糙的一切。VIM php语法错误

除了重写我的正则表达式不包含在一行中的这两个字符,有什么我可以做,使VIM意识到我在字符串中,而不是代码段?

回答

0

我会说不,除非你真的修改vim的src。在这样语法高亮显示有同样的问题:

<?php 

    some_code("that is highlighted correctly"); 
    $mystring = "This code is highlighted OK, until I do ?>"; 
    some_other("code that should be syntax highlighted but isn't"); 

?> 

这是因为SO和vim使用正则表达式的高亮显示的代码,他们是不是很复杂,无法应付这个...

+0

感谢您的回复,我没有意识到也是这么做的。这一定是一个非常有前途的案例,没有人真正在意。 – bawkstoo

0

你可能会难逃>

?\> 

,如果它是内容的一部分,不应打破正则表达式。

我能想到的唯一的另一种方式是使用ASP风格标签<%%>或<script language="php"></script>,但我不确定vim是否支持这些标签,并且它会是杂色的。