Sublime Text 3 中 x-template 脚本标签内 HTML 的语法高亮显示

Syntax Highlighting for HTML inside x-template script tags in Sublime Text 3

我最近升级到最新版本的 sublime text(版本 3.1.1 Build 3176)并且丢失了标签内包含的 html 的语法突出显示。

对于上下文,我正在使用 x-template 类型的脚本在以 .html 扩展名保存的文件中创建 Vue.js 组件。

我的文件看起来像这样:

<!-- comp.html -->
<script type="text/x-template" id="comp-template">
    <div id="comp-template>
        <h2> {{ componentTitle }} </h2>

    </div>
</script>

以前版本的 Sublime Text 默认会突出显示那些脚本标签中的 html,但现在它似乎不再起作用了。让 sublime 再次识别 x-template 脚本标签中的 HTML 的最佳方法是什么?

我和你有同样的问题。作为为 <script type="text/x-template">...</script>:

启用语法高亮的临时解决方法
  1. 安装旧版本,例如 Build 3143 (Windows: https://download.sublimetext.com/Sublime Text Build 3143 x64 Setup.exe)
  2. 备份C:\Program Files\Sublime Text 3\Packages\HTML.sublime-package
  3. 更新到最新版本
  4. 恢复备份

仅供参考,我已将您的问题报告到 Sublime 论坛。

编辑:现在有一个包,叫做 "Vue Syntax Highlight"


这里有一个方法:

  1. 从 Sublime Github 存储库下载 HTML.sublime-语法:https://raw.githubusercontent.com/sublimehq/Packages/f10135941f5aeaa3af5906850f7dc296e51b1172/HTML/HTML.sublime-syntax
  2. line 3name: HTML 更改为 name: HTML-Vue
  3. line 83 从:- match: '(<)((?i:script))\b' 更改为 - match: '(<)((?i:script))\b(?![^>]*/>)(?![^>]*(?i:type.?=.?text/((?!javascript).*)))'
  4. 将文件重命名为 HTML-Vue.sublime-syntax
  5. 将文件保存到用户本地设置(Windows 为 %AppData%\Sublime Text 3\Packages\User\HTML-Vue.sublime-syntax
  6. 重启 SublimeText 和 select View > Syntax > Open all with current extension as… > HTML-Vue

这是一种不需要新语法模式且编辑更简单的方法:

  1. 从与 Sublime Text 3 捆绑在一起的 Packages 目录中复制 HTML.sublime-package 文件。

  2. 它实际上是一个 zip 文件,所以将内容解压到用户包区域 ..../User/Packages/HTML

  3. 编辑 HTML 目录和 script-type-decider 块中的 HTML.sublime-syntax 文件更改:

    - match: (?i)(?=text/html(?!{{unquoted_attribute_value}})|'text/html'|"text/html")

    - match: (?i)(?=text/html(?!{{unquoted_attribute_value}})|'text/html'|"text/html"|"text/x-template")

(或替换您正在使用的任何模板类型。)

然后重启 Sublime Text。

注意,这种方法的一个缺点是 HTML 包在 Sublime Text 更新时将不再是最新的。因此,您可能希望定期再次执行这些步骤。