微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vim php_javascriptInStrings选项?

我注意到我的ubuntu机器上的语法/ PHP. vim文件一个PHP_htmlInStrings选项.我可以启用此选项以在我的PHP文件显示字符串中的 HTML语法突出显示,这很棒.我还想在PHP文件中的字符串中进行 javascript语法高亮显示.有人知道是否可以这样做,如果可以,我该怎么做?

编辑 – 增加额外的可能性

我还要提一下,我会很高兴解决方案,我必须在输出结果之前通过PHP函数解析我的所有javascript字符串.这可能会解决下面的conner建议的问题,其中vim无法确定字符串是否包含javascript.例如:

$js = "some regular text which is not javascript##Now vim has
detected that this part is javscript##back to regular text";
parse($js);
function parse($str)
{
    return str_replace('##','',$str);
}

我很乐意这样做的原因是因为我可能会在我的项目中加入一个html / css / js变量minifier,无论如何都会对字符串进行替换.

当然,如果##中存在特定于vim的等效字符,它不会显示在源代码中而不需要过滤掉,那么这将是更可取的…

重新编辑2

根据下面的conner解决方案,可以实现所需的效果,如下所示:

$js = "<script>some javascript</script>";

(使用:让vim中的PHP_htmlInStrings = 1).如果有人可以向我展示使javascript语法突出显示在以下字符串中所需的vim脚本,那么我将奖励他们答案:

$js = /*<script>*/"some javascript"/*</script>*/;

解决方法

我认为这个问题的一般问题是vim需要一种方法来区分javascript和HTML突出显示.在HTML文件中,vim根据< script>< / script>确定此内容.其中的标签应用javascript突出显示.如果你把< script>< / script>你的字符串中的标签你会看到这种情况.但是,如果你拿走那些,那么vim无法知道你的字符串中的内容是HTML还是javascript.您可以通过编辑添加内容来表示它是javascript,希望不会影响结果代码,从而解决这个问题,但这很棘手.您可以看到HTML文件在何处设置< script>< / script> $VIMRUNTIME / Syntax / html.vim第167行的标记规范.它看起来像这样:

syn region  javaScript start=+<script[^>]*>+ keepend end=+</script>+me=s-1 contains=@htmlJavaScript,htmlCssstyleComment,htmlScriptTag,@htmlPreproc

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐