首页 > 解决方案 > 如何使用 Emmet 在 Sublime 中添加非 html 语法片段?

问题描述

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

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

这些片段我看起来很奇怪,因为这些是我的自定义标记,将转换为 php 代码Template Engine,因此代码不是 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 }-->"
            }
        }
    }
}

标签: sublimetext3emmet

解决方案


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

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

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


推荐阅读