【问题标题】:Emmet wrap with abbreviation input+label带有缩写输入+标签的 Emmet 换行
【发布时间】:2025-12-05 16:35:01
【问题描述】:

选择以下行后生成以下代码的缩写是什么:

radio1
radio2
radio3

生产:

<input type="radio" id="radio1" name="radioGroup">
<label for="radio1">radio1</label>
<input type="radio" id="radio2" name="radioGroup">
<label for="radio2">radio2</label>
<input type="radio" id="radio3" name="radioGroup">
<label for="radio3">radio3</label>

【问题讨论】:

    标签: html forms emmet


    【解决方案1】:

    我认为它 Wrap With Abbreviation 但与建议的略有不同

    选择所有行然后点击组合键(如下)并输入:

    (input[type=radio id=$# name=radioGroup]+label[for=$#]{$#})*{}

    关键是 * 包装您选择的每一行,{} 包装内容。 $#Controls output position

    Keycombos - 如果您使用的是 Sublime Text:

    Ctrl + w(macOS - 还必须禁用 Vintegoous)

    Ctrl + Shift + G(Windows)

    【讨论】:

    • 当然# 对 Emmet 没有什么特别的意义,但 $# 确实如此:请参阅 Controlling output position。实际上这是 emmet-vim 的一个问题 (#292),现已解决。虽然我使用live editor 遇到了同样的问题,但似乎最后包含{} 会产生正确的结果:(input[type='radio'][id="$#"][name="radioGroup"]+label[for="‌​$#"]{$#})*{}
    【解决方案2】:

    你来了,伙计……

    (input[type='radio'][id="radio$"][name="radioGroup"]+label[for="radio$"]{radio$})*3
    

    【讨论】:

    • tanx BUT 用缩写包装缩写扩展不同。您的缩写是正确的,但前提是我逐字键入并展开它。我的问题是试探性的和更一般的情况。我的意思是我在这里输入选项:radio1、radio2 和 radio3;全部选中,然后输入缩写。我要那个。我用$# 替换您的缩写radio$ 并删除3 即:(input[type='radio'][id="$#"][name="radioGroup"]+label[for="$#"]{$#})*。但没有成功和不想要的结果!