我不知道这是否可能/明智,但我很想知道是否可以让我的 javascript 文件中的字符串具有 html 突出显示。我发现php中的字符串可以有SQL语法高亮,所以我相信这是可能的。
但是,我不知道 vim 脚本,所以对此的任何帮助表示赞赏。
我正在使用更好的 Javascript 语法。
PS:如果在编辑js文件时可以选择打开和关闭它,那就太好了
谢谢
我不知道这是否可能/明智,但我很想知道是否可以让我的 javascript 文件中的字符串具有 html 突出显示。我发现php中的字符串可以有SQL语法高亮,所以我相信这是可能的。
但是,我不知道 vim 脚本,所以对此的任何帮助表示赞赏。
我正在使用更好的 Javascript 语法。
PS:如果在编辑js文件时可以选择打开和关闭它,那就太好了
谢谢
是的,如果您不介意一些语法文件黑客攻击,这是可能的。首先,您需要在 Javascript 语法文件中包含 HTML 语法文件——:help syn-include
有关信息,请参阅;其次,您需要声明可以在某些元素(即字符串)中找到 HTML 语法。第三,如果你想拥有启用和禁用它的选项,你可以使这些命令依赖于一个全局变量,并编写一些设置或取消设置变量的映射,然后重新加载语法文件。
有关包含如何工作的示例,请查看syntax/html.vim
(包括 Javascript 和 CSS 语法文件)、syntax/perl.vim
(包括 POD 语法文件)或php.vim
(包括在字符串中突出显示 SQL 语法,以全局变量为条件)。
编辑:在我的副本中实际上做了一些工作来实现这一点。
在 的头部syntax/javascript.vim
,就在下面syn case ignore
,添加
syn include @javaScriptHTML syntax/html.vim
unlet b:current_syntax
syn spell default " HTML enables spell-checking globally, turn it off
然后将 和 添加到@javaScriptHTML
列表contained=
中。javaScriptStringD
javaScriptStringS
最后,如果它是从javascript加载的,您必须进行编辑syntax/html.vim
以防止它尝试包含:找到读取的行syntax/javascript.vim
if main_syntax != 'java' || exists("java_javascript")
并将其更改为
if main_syntax != 'javascript' && ( main_syntax != 'java' || exists("java_javascript")