我想在Visual Studio Code中将我选择的HTML内容包裹在一个标签中。
我该如何做到这一点?
嵌入式Emmet可以解决这个问题:
Emmet:用缩写进行包装
div
(或者是一个缩写.wrapper>p
)该命令可以分配到快捷键。
这个工具甚至支持传递参数:
{
"key": "ctrl+shift+9",
"command": "editor.emmet.action.wrapWithAbbreviation",
"when": "editorHasSelection",
"args": {
"abbreviation": "span",
},
},
使用方法如下:
span.myCssClass
span#myCssId
b
b.myCssClass
span.myCssClass
span#myCssId
b
b.myCssClass
Ctrl
+p
是打开文件。命令面板是 Ctrl
+Shift
+P
。 - Alex启动 Visual Studio Code 的快速打开功能 (Ctrl + P)
粘贴 ext install htmltagwrap
并按下 Enter。
选择 HTML
按下 Alt + W(Mac 上为 Option + W)。
<p></p>
标签中,而不是更合理的通用<div></div>
标签。更糟糕的是,它失败了。它会产生类似于<p><p>我的所选文本。</p>
的输出。 - Samir<div>
,则添加以下设置:"htmltagwrap.tag": "div"
。 - bgashler1由于我无法评论,因此我将扩展Alex的精彩回答。
如果您想要类似于Sublime的换行体验,请打开键盘快捷方式(command ⌘/Ctrl+shift+P > Preferences: Open Keyboard Shortcuts (JSON)),并添加以下对象:
{
"key": "alt+w",
"command": "editor.emmet.action.wrapWithAbbreviation",
"when": "editorHasSelection && editorTextFocus"
}
当选中文本时,将Emmet包装命令绑定到option ⌥/Alt+W。
emmet wrap
。Shift
+ Ctrl
+ W
和Shift
+ Alt
+ W
没有被使用(Visual Studio Code 1.82.2),因此使用起来很简单。(与正在使用的Ctrl
+ W
和Alt
+ W
相比,它们没有被使用。) - undefinedAlt
+ W
可能是可以的,或者也可能不行。它会改变搜索设置(?)。 - undefinedShift
+ Ctrl
+ W
是一个可行的解决方案。 - undefined据我所知,使用代码片段有更好的答案。
创建一个类似以下定义的代码片段:
"name_of_your_snippet": {
"scope": "javascript,html",
"prefix": "name_of_your_snippet",
"body": "<${0:b}>$TM_SELECTED_TEXT</${0:b}>"
}
然后将其绑定到keybindings.json中的一个键,例如:
"key": "ctrl+shift+c",
"command": "extension.nameOfCommand"
{
"key": "alt+w",
"command": "editor.action.insertSnippet",
"args": { "name": "name_of_your_snippet" }
}
我认为这应该会给你与htmltagwrap完全相同的结果,但不需要安装扩展。
它将在所选文本周围插入标签,默认为<b>
标签并选择该标签,因此键入时可以更改它。
如果要使用其他默认标签,只需更改片段的body
属性中的b
即可。
javascriptreact
和typescriptreact
添加到范围中即可。 - soundly_typed从VSCode 1.47版本开始,您可以使用OPT-w轻松完成此操作。
利用内置功能来触发Emmet,这是最简单的方法:
emmet
窗口中,输入您所需的标签或包装代码。Emmet: Wrap with Abbreviation
绑定为 ((ctrl) (w+a))。我刚刚从扩展市场安装了 htmltagwrap,并使用 ALT-W 来包装标签(Windows 版本)。
Cut selection (Ctrl+X/Cmd+X) -> Type tag -> Paste (Ctrl+V/Cmd+V)
div
时(除了添加“div”之外)没有任何反应。但是,在另一个从未安装过Visual Studio Code的系统上安装后,它确实起作用了(完全相同的版本,1.82.2)。在两种情况下,文件扩展名都是.html
。需要什么配置才能使其正常工作? - undefined这是一个快速解决方案的输入。
打开命令面板(通常是Ctrl+Shift+P)
首选项:打开键盘快捷方式(JSON)
添加此代码
{
"key": "ctrl+`",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus",
"args": {
"snippet": "~~${TM_SELECTED_TEXT/^([\\t]*).*$/$1/}${TM_SELECTED_TEXT/^[\\t]*(.*)$/$1/}${TM_SELECTED_TEXT/^([\\t]*).*$/$1/}~~"
},
}
选择任何文本,然后按下ctrl+`
结果:
~~YourText~~