温馨提示:本文翻译自stackoverflow.com,查看原文请点击:visual studio code - Emmet How To Wrap Usig Multiple Tags
atom-editor phpstorm sublimetext3 visual-studio-code emmet

visual studio code - Emmet如何包装Usig多个标签

发布于 2020-04-18 11:43:20

我正在尝试使用以下标记包装一堆数据。

例如:

link1
link2
link3
link4
link5

我希望它们每个都用以下标签包裹。

<url>
<loc>link1</loc>
<lastmod>2020-01-16T22:59:45+00:00</lastmod>
<priority>0.80</priority>
</url>

<url>
<loc>link2</loc>
<lastmod>2020-01-16T22:59:45+00:00</lastmod>
<priority>0.80</priority>
</url>
....

我想知道使用Emmet代码是否可以做到这一点。任何帮助,将不胜感激。

查看更多

提问者
Gihan
被浏览
67
Mark 2020-02-05 09:18

另一种选择是使用常规代码段。这是针对vscode的:

"link snippet": {
  "prefix": "link",
  "body": [
    "<url>"
    "<loc>$TM_SELECTED_TEXT</loc>",

    "<lastmod>2020-01-16T22:59:45+00:00</lastmod>",  // if date is fixed ahead of time

       // use below if date is dynamic at creation time
     "<lastmod>${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE}T${CURRENT_HOUR}:${CURRENT_MINUTE}:${CURRENT_SECOND}+00:00</lastmod>"

    "<priority>0.80</priority>",
    "</url>",
    ""
  ],
  "description": "Wrap link with url, etc."
},

然后,由于您需要将3个命令链接在一起以简化此操作,因此请使用诸如multi-command之类的宏扩展pu这到您的settings.json:

  "multiCommand.commands": [

    {
      "command": "multiCommand.expandLink",
      "sequence": [
        "editor.action.insertCursorAtEndOfEachLineSelected",
        "cursorHomeSelect",
        {
          "command": "editor.action.insertSnippet",
          "args": {
            "name": "link snippet",
          }
        },
      ]
    }
  ]

在分别选择您的每行之后,这将触发该代码段。要触发宏本身,您需要一个键绑定(在keybindings.json中):

{ 
  "key": "shift+alt+l",
  "command": "extension.multiCommand.execute",
  "args": { "command": "multiCommand.expandLink" },
},

相当多的设置,但是这只是触发所有操作的一个绑定。演示:

包装链接演示