Emmet 快速包裹代码块最常用方法是选中代码后按 Ctrl+Shift+G(Win/Linux)或 Cmd+Shift+G(macOS),输入标签名(如 div.container)回车即可;中文输入法下需切英文状态,非 HTML 文件需临时切 HTML 语法或配置作用域。

用 Emmet 快速包裹代码块(最常用)
Sublime Text 默认启用 Emmet,选中代码后按 Ctrl+Shift+G(Windows/Linux)或 Cmd+Shift+G(macOS),会弹出输入框,输入 HTML 标签名(如 div、section)回车即可自动包裹。注意:该快捷键在中文输入法下可能失效,务必切换为英文输入状态。
常见问题:
- 没反应?检查是否已选中文字(哪怕只选一个空格)
- 输完标签名没生成?确认光标焦点在 Emmet 输入框内,而非编辑区
- 想加 class 或 id?直接输入
div.container或span#msg,Emmet 会自动解析
用 Wrap Plugin 手动配置自定义环绕(需安装插件)
如果需要包裹成非 HTML 结构(比如 Python 的 try...except、JS 的 if () {}),原生 Emmet 不支持,得靠 Wrap As You Type 或 Text Paired 类插件。推荐安装 Wrap Plus:
Package Control → Install Package → 输入 "Wrap Plus"
安装后重启,选中文本,按 Ctrl+Alt+W(Win/Linux)或 Cmd+Alt+W(macOS),进入模板选择界面。它内置了常见语言的包裹模板,比如:
-
if→ 插入if (true) { $0 } -
log→ 插入console.log($1); -
php→ 插入
模板变量 模板变量 是光标最终位置,$0 是光标最终位置,$1 是第一个跳转点,支持 Tab 键切换。 是第一个跳转点,支持 Tab 键切换。
手动修改 key bindings 实现一键包裹特定标签
如果总要包裹成某个固定结构(比如每次都要套 ),可以自定义快捷键:...
[
{
"keys": ["ctrl+alt+c"],
"command": "insert_snippet",
"args": {
"contents": "$0
"
}
}
]把上面内容粘贴进:Preferences → Key Bindings → Preferences.sublime-keymap(右侧用户文件)。注意:
- 双引号和反斜杠必须转义,HTML 尖括号不用额外处理
-
$0表示光标最终停留位置;若想让选中文本自动填入中间,改用$1并把内容写成$1 - 快捷键冲突时,Sublime 会优先执行最后定义的那条规则
为什么 Ctrl+Shift+P 搜索 “wrap” 找不到对应命令?
因为 Sublime 原生命令中没有叫 wrap 的命令名。Emmet 的包裹功能是上下文感知的,不作为独立命令注册到命令面板。真正注册的命令是 emmet_wrap_with_abbreviation,但你几乎不需要手动调用它——直接用 Ctrl+Shift+G 更快。如果非要从命令面板触发,搜 Emmet: Wrap with Abbreviation 即可,但效率远低于快捷键。
容易被忽略的是:Emmet 在非 HTML 文件类型里默认禁用。如果在 .js 或 .py 里按 Ctrl+Shift+G 没反应,先按 Ctrl+Shift+P 输入 Set Syntax: HTML 临时切一下语法高亮,或者在对应语法的 Settings - Syntax Specific 里加一行:"emmet_syntax_scopes": ["text.html.basic"](不推荐,影响其他功能)。










