如何使用 Emmet 在 Sublime 中添加 not html 语法片段?

How to add not html syntax snippet in Sublime with Emmet?

旧的 Emmet 工作正常,但现在我的 Sublime 已经自动将 Emmet 插件升级到最新版本,下面的代码片段不再工作了...

最新的 Emmet 只能在自定义代码段上接受 HTML 语法

这些片段我看起来很奇怪,因为这些是我的自定义标签,将在 Template Engine 中转换为 php 代码,所以代码不是 HTML 语法。

例如,当我键入 p1 并按 tab 时,我希望它给我 <!--{if }-->:

{
    "config": {
        // Configure snippets/options for HTML syntax only.
        // For a list of supported syntaxes, check out keys of `syntax_scopes`
        // dictionary of `Emmet.sublime-settings`
        "html": {
            "snippets": {
                "p1": "<!--{if }-->",
                "l1": "<!--{/if}-->",
                "p2": "<!--{loop }-->",
                "l2": "<!--{/loop}-->",
                "p3": "<!--{eval }-->",
                "p4": "<!--{block }-->",
                "l4": "<!--{/block}-->",
                "else": "<!--{else}-->",
                "elif": "<!--{elseif }-->"
            }
        }
    }
}

新的 Emmet 接受作为 Emmet 缩写的代码段值(是的,递归)并且可以更好地与原生 ST 代码段一起使用。因此,您应该将代码片段添加为 ST 中的原生代码片段,或者如果您仍想对此类代码片段使用 Emmet,则应将它们编写为有效的 Emmet 缩写。要以 Emmet 缩写输出任意文本,您应该将其写为文本节点,例如用 {}.

换行

因此,您的代码段应如下所示:

"p1": "{<!--{if }-->}"