如何在VS代码中进行标记包装?

han*_*ans 119 html visual-studio-code

我想将我选择的html包装在VS代码中的标签中.我怎么做?

Ale*_*lex 235

嵌入式Emmet可以做到这一点:

  1. 选择文字(可选)
  2. 打开命令调色板(通常为Ctrl+ Shift+ P)
  3. 执行 Emmet: Wrap with Abbreviation
  4. 输入标签div(或缩写.wrapper>p)
  5. 击中 Enter

可以将命令分配给键绑定.

在此输入图像描述

  • `Ctrl` +`p`是goToFile.命令调色板是"Ctrl"+"Shift"+"P". (15认同)
  • https://marketplace.visualstudio.com/items?itemName=Equinusocio.vsc-material-theme (3认同)
  • 这应该是答案,emmet已安装在vscode中 (3认同)
  • 对于 VSCode 1.35.0(可能更早),这可以与 JSX 一起使用 - 不需要任何额外的配置 (3认同)
  • 对于 JSX,必须添加这个额外的步骤:https://github.com/Microsoft/vscode/issues/4962#issuecomment-323880988 (2认同)

han*_*ans 75

快速搜索VSCode市场:https://marketplace.visualstudio.com/items/bradgashler.htmltagwrap .

  1. 启动VS Code Quick Open(Ctrl+ P)

  2. 粘贴ext install htmltagwrap并输入

  3. 选择HTML

  4. Alt+ W(Option+ W对于Mac).

  • “要使用,请选择一段代码并按“Alt + W”(Mac 为“Option + W”)。” 够简单!除了它不工作。我用 VS Code 1.16.1 尝试了 0.0.3 版。它*几乎*有效。它试图将选择包裹在 `<p></p>` 标签中,而不是通用的 `<div></div>` ,这看起来更明智。更糟糕的是它失败了。它产生类似`<p><p>My selected text.</p>`的输出 (2认同)
  • 更新:扩展现在可以正常工作并解决了上述问题。不再有重复的标签,您现在可以通过设置自定义要插入的标签。因此,如果您希望标记为 `<div>`,请添加以下设置,`"htmltagwrap.tag": "div"`。 (2认同)

And*_*wis 31

由于我无法评论,我将扩展Alex的精彩答案.

如果你想要像Sublime一样的经验包装打开Keymap Extensions(Preferences> Keymap Extensions [ Cmd+ K Cmd+ M])并添加以下对象:

{
    "key": "alt+w",
    "command": "editor.emmet.action.wrapIndividualLinesWithAbbreviation",
    "when": "editorHasSelection && editorTextFocus"
}
Run Code Online (Sandbox Code Playgroud)

当选择文本时,将Emmet包装命令绑定到Alt+W

(对不起OSX指令)

  • 这就是我添加快捷方式的方法:Preferences> Keyamp Shortcuts; ...然后搜索emmet wrap; ...单击+添加你的快捷方式; ... :) (5认同)
  • @AndrewLewis - 是的,这就是为什么我将其保留为语言 ID 而不是文件扩展名(files.associations)。 (3认同)
  • 另外我添加了 && resourceLangId == 'html' 仅适用于网页 (2认同)
  • @surpavan,很好,但是在其他文件类型中也很方便,例如 html 模板文件 (2认同)

小智 15

  1. 通过输入? Command+ k ? Command+ s或打开键盘快捷键Code > Preferences > Keyboard Shortcuts
  2. 类型 emmet wrap
  3. 单击“ Emmet:缩写包装”左侧的加号。
  4. 类型? Option+w
  5. Enter


小智 7

imo 有一个更好的答案,使用 Snippets

创建一个定义如下的片段:

"name_of_your_snippet": {
    "scope": "javascript,html",
    "prefix": "name_of_your_snippet",
    "body": "<${0:b}>$TM_SELECTED_TEXT</${0:b}>"
}
Run Code Online (Sandbox Code Playgroud)

然后将其绑定到 keybindings.json 中的一个键,例如:

{ 
    "key": "alt+w",
    "command": "editor.action.insertSnippet",
    "args": { "name": "name_of_your_snippet" }
}
Run Code Online (Sandbox Code Playgroud)

我认为这应该为您提供与 htmltagwrap 完全相同的结果,但无需安装扩展程序。

它将在所选文本周围插入标签,默认为<b>tag & 选择标签,因此输入可以让您更改它。

如果您想使用不同的默认标签,只需更改代码片段bbody属性即可。

  • 我不明白那些反对票。当然,Emmet 更复杂,我可以做很多事情,但是对于用标签包装文本选择,这个解决方案非常棒!当您换行时,您不必将眼睛移至屏幕/窗口的上部。它就发生在你已经所在的地方,因为你选择了文本!这是一个非常常见的用例和快速解决方案,运行时间短! (2认同)

Ton*_*nas 5

使用 VSCode 1.47+,您可以简单地使用 OPT-w。

利用内置功能触发emmet,这是最简单的方法:

  1. 选择您的文本/html。
  2. Shift+ Option+w
  3. emmet命令面板中打开的窗口中,输入您需要的标记或包装代码。
  4. Enter

  • 我没有发现 Mac OS 上的 1.47.3 出现这种情况。我必须按照其他答案的建议添加 Opt+w 的键绑定。 (5认同)