vim中javascript字符串中的HTML语法高亮显示

vim中javascript字符串中的HTML语法高亮显示,javascript,html,vim,syntax-highlighting,vim-syntax-highlighting,Javascript,Html,Vim,Syntax Highlighting,Vim Syntax Highlighting,我不知道这是否可行/合理,但我很好奇是否可以让javascript文件中的字符串具有html高亮显示。我发现php中的字符串可以突出显示SQL语法,所以我相信这是可能的 但是,我不知道vim脚本,因此在此方面的任何帮助都将不胜感激 我在用电脑 PS:如果在编辑js文件时可以选择打开和关闭它,那就太好了 谢谢是的,如果您不介意对语法文件进行黑客攻击,这是可能的。首先,您需要在Javascript语法文件中包含HTML语法文件——请参见:help syn include,以获取相关信息;其次,您需要

我不知道这是否可行/合理,但我很好奇是否可以让javascript文件中的字符串具有html高亮显示。我发现php中的字符串可以突出显示SQL语法,所以我相信这是可能的

但是,我不知道vim脚本,因此在此方面的任何帮助都将不胜感激

我在用电脑

PS:如果在编辑js文件时可以选择打开和关闭它,那就太好了


谢谢

是的,如果您不介意对语法文件进行黑客攻击,这是可能的。首先,您需要在Javascript语法文件中包含HTML语法文件——请参见
:help syn include
,以获取相关信息;其次,您需要声明HTML语法可以在某些元素(即字符串)中找到。第三,如果希望启用和禁用该变量,可以使这些命令依赖于全局变量,并编写一些设置或取消设置该变量的映射,然后重新加载语法文件

有关包含如何工作的示例,请查看
syntax/html.vim
(其中包括Javascript和CSS语法文件)、
syntax/perl.vim
(其中包括POD语法文件)或
php.vim
(其中包括以字符串形式突出显示SQL语法,以全局变量为条件)

编辑:在我的副本中确实做了一些工作

syntax/javascript.vim
的开头,在
syncase ignore
的正下方添加

syn include @javaScriptHTML syntax/html.vim
unlet b:current_syntax
syn spell default " HTML enables spell-checking globally, turn it off
然后将
@javaScriptHTML
添加到
javaScriptStringD
javaScriptStringS
contained=
列表中

最后,您必须编辑
syntax/html.vim
,以防止它试图包含
syntax/javascript.vim
,如果它是从javascript加载的:查找以下行

if main_syntax != 'java' || exists("java_javascript")
并将其更改为

if main_syntax != 'javascript' && ( main_syntax != 'java' || exists("java_javascript")

+我也希望能做到这一点。。。我在JS文件中嵌入了大量HTML。我的vimrc中嵌入的Python被正确地突出显示了,所以这类事情绝对是可能的。哇!真的。。我从未在vimrc中编写过python,因此从未注意到。。英雄联盟那么,它是否会像“syntax include@javaScriptStringS syntax/html.vim”,但如果我将其添加到我的javascript.vim中,当我打开一个js文件时,我将看不到任何东西。。。我做错了什么?不知何故,我最终还是递归导入了html.vim:(感谢hobbs,很抱歉我回来得很晚,但我尝试了你的解决方案,我确实在字符串中获得了一些html颜色,但仍然存在两个问题,文件中的所有“>”符号都显示为红色背景,例如不匹配或其他什么,并且字符串首先在js文件中打开,永远不会结束…即,在“first”突出显示为js字符串…感谢您的帮助。。。