将 emmet 自动完成功能扩展到 sublime 文本中的多行

Posted

技术标签:

【中文标题】将 emmet 自动完成功能扩展到 sublime 文本中的多行【英文标题】:Expand emmet autocompletes to multiple lines in sublime text 【发布时间】:2014-03-13 14:42:53 【问题描述】:

当我用 emmet 在 sublime text 2 中输入以下内容时:

.one>labelfoo+input:r

我得到一长行代码

<div class="one"><label for="">foo</label><input type="radio" name="" id=""></div>

有没有办法让 emmet/sublime 输出这种风格?

<div class="one">
    <label for="">foo</label>
    <input type="radio" name="" id="">
</div>

我尝试使用 sn-ps.json 没有成功

【问题讨论】:

确保您已将语法设置为 html 或 XML,或者没有覆盖 HTML 的默认输出配置文件。 将语法切换到 xml 解决了这个问题(HTML 没有),我认为它可能是导致问题的 html(liquid) 语法,谢谢 HTML (Liquid) 与 HTML 不同:它具有不同的作用域,因此 Emmet 认为您正在以未知的语法使用它,很可能是在编程语言的字符串中。这就是它产生单行输出的原因 【参考方案1】:

这可能不是最好的答案,但我所做的是将 reindent 绑定到一个键,然后点击它。

在 Preferences - Keybindings-User 中输入类似

 "keys": ["f12"], "command": "reindent"

但是我确定有办法正确地做到这一点

【讨论】:

【参考方案2】:

使用以下内容创建Packages/User/Emmet.sublime-settings


    // Output profiles for syntaxes
    // http://docs.emmet.io/customization/syntax-profiles/
    "syntaxProfiles": 
        "html": 
            "tag_nl": true
            // "tag_nl_leaf": true
        
    

并查看documentation 以获取有关tag_nltag_nl_leaf 和其他选项的更多信息。

【讨论】:

以上是关于将 emmet 自动完成功能扩展到 sublime 文本中的多行的主要内容,如果未能解决你的问题,请参考以下文章

sublime text3中设置Emmet输入标签自动闭合

Sublime插件Emmet的安装及Tab补全代码

如何将Emmet安装到到 Sublime text 3?

sublime中Emmet 8个常用的技巧

sublime text 3 怎么安装emmet

Emmet 自动完成功能在 JSX 中不起作用