Visual studio code 用HTML标记或其他任意代码包装代码块

Visual studio code 用HTML标记或其他任意代码包装代码块,visual-studio-code,Visual Studio Code,我不确定这个问题最好的表达方式是什么。这可能是我之所以使用StackOverflow的原因,因为我在Google上找不到结果。让我试一试 假设我的编辑器中有以下HTML: <li>One</li> <li>Two</li> <li>Three</li> 上面的示例是经过精心设计的,但我认为它说明了我希望在编辑器中完成的内容。包装的一般形式是在代码段中使用$TM_SELECTED_文本。像 "if wrap": { "p

我不确定这个问题最好的表达方式是什么。这可能是我之所以使用StackOverflow的原因,因为我在Google上找不到结果。让我试一试

假设我的编辑器中有以下HTML:

<li>One</li>
<li>Two</li>
<li>Three</li>

上面的示例是经过精心设计的,但我认为它说明了我希望在编辑器中完成的内容。

包装的一般形式是在代码段中使用$TM_SELECTED_文本。像

"if wrap": {
  "prefix": "*s",
  "body": [

      "if car.$1()) {",
      "\t${TM_SELECTED_TEXT}",
      "}"
  ],
  "description": "Wrap selection in if statement"
},
该代码段将进入其中一个代码段文件,请参阅

由于代码段触发器,此处*s将否定您的选择,因此您需要在keybindings.json中使用keybinding触发代码段:

{
  "key": "alt+i",         // whatever keybinding you want
  "command": "editor.action.insertSnippet",
  "args": {

    "name": "if wrap"   // the name you gave your snippet
  },
  "when": "editorTextFocus"
},
现在选择要换行的文本并触发keybinding alt+i


还有其他方法可以避免必须首先选择要换行或不实际使用文本的文本,例如,如果您想在文本下方添加if换行。

Emmet:wrap with abberviation可以为HTML完成此操作。选择所有li标记而不是多光标,然后调用命令并输入所需的标记。@rioV8这非常适合HTML。不过,我想知道是否有类似的方法包装非HTML内容。您可以查看扩展正则表达式文本生成器。您可以使用选定的文本或使用带有${TM_selected_Text}的代码段执行大量操作
{
  "key": "alt+i",         // whatever keybinding you want
  "command": "editor.action.insertSnippet",
  "args": {

    "name": "if wrap"   // the name you gave your snippet
  },
  "when": "editorTextFocus"
},