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

发布于 2024-08-05 11:33:22 字数 342 浏览 16 评论 0原文

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

但是,我不知道 vim 脚本,所以对此的任何帮助表示赞赏。

我正在使用 更好的 Javascript 语法

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

谢谢

I don't know if this is possible/sensible, but I was curious to know if I can have my strings in javascript files have html highlighting. I discovered that strings in php could have SQL syntax highlighting, so I believe it is possible.

But, I don't know vim-scripting, so any help on this appreciated.

I am using the Better Javascript syntax.

PS: If there could be an option to turn it on and off while editing a js file, that would be wonderful

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

回忆凄美了谁 2024-08-12 11:33:22

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

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

编辑:在我的副本中实际实现这一点做了一些工作

syntax/javascript.vim 的头部,在 syn caseignore 的正下方,添加

syn include @javaScriptHTML syntax/html.vim
unlet b:current_syntax
syn spell default " HTML enables spell-checking globally, turn it off

然后将 @javaScriptHTML 添加到 contained=< /code> 列出了 javaScriptStringDjavaScriptStringS

最后,您必须编辑 syntax/html.vim 以防止它尝试包含 syntax/javascript.vim(如果它是从 javascript 加载的):找到读取的行

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

并将其更改为

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

Yes, it's possible if you don't mind some syntax file hacking. First you need to include the HTML syntax file from within the Javascript syntax file -- see :help syn-include for info on that; second you need to declare that HTML syntax can be found inside of certain elements (i.e. strings). Third, if you want to have the option of enabling and disabling it, you can make those commands dependent on a global variable, and write some mappings that set or unset the variable and then reload the syntax file.

For examples on how inclusion works, take a look at syntax/html.vim (which includes the Javascript and CSS syntax files), syntax/perl.vim (which includes the POD syntax file), or php.vim (which includes SQL syntax highlighting in strings, conditional on a global ariable).

Edit: did some work on actually making this happen in my copy.

In the head of syntax/javascript.vim, just below syn case ignore, add

syn include @javaScriptHTML syntax/html.vim
unlet b:current_syntax
syn spell default " HTML enables spell-checking globally, turn it off

Then add @javaScriptHTML to the contained= lists for javaScriptStringD and javaScriptStringS.

Finally you have to edit syntax/html.vim to prevent it from trying to include syntax/javascript.vim if it was loaded from javascript: find the line that reads

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

and change it to

if main_syntax != 'javascript' && ( main_syntax != 'java' || exists("java_javascript")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文