Wrap with Abbreviation 功能位于 Emmet 插件中,需先通过 Package Control 安装并启用 Emmet,确保文件语法为 HTML 等支持格式,再用 Ctrl+Shift+G(Win/Linux)或 Cmd+Shift+G(macOS)调用,输入 CSS 选择器式缩写即可包裹文本。

Wrap with Abbreviation 功能在哪找?
这个功能藏在 Emmet 插件里,不是 Sublime 原生功能。如果你刚装好 Sublime,大概率还没启用它——得先确认 Emmet 已安装且生效。
检查方式:选中一段文本,按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Wrap with Abbreviation,看是否能搜到。搜不到?说明 Emmet 没装或没启动成功。
- 推荐用
Package Control安装:Ctrl+Shift+P→ 输入Install Package→ 搜Emmet→ 选中安装 - 装完重启 Sublime,或手动执行一次
Emmet: Enable Languages,确保 HTML/CSS/JS 等语法被识别 - 如果仍不响应,检查当前文件右下角的语法模式是不是
HTML(不是Plain Text或Text)
怎么用 Wrap with Abbreviation 给文本加标签?
选中文本后,快捷键是 Ctrl+Shift+G(Windows/Linux)或 Cmd+Shift+G(macOS)。弹出输入框,直接敲缩写即可,比如:
div.my-class#my-id
回车后,选中的文本就会被包裹成:
立即学习“前端免费学习笔记(深入)”;
[你的文本]
常见缩写习惯:
-
p→...
-
span.red→... -
a[href="https://example.com"]→... -
ul>li*3→ 会生成三层嵌套结构(但注意:这适用于空行或光标位置,对已选文本只包裹最外层)
为什么有时按了 Ctrl+Shift+G 没反应?
这不是插件坏了,多数是触发条件没满足:
- 当前视图不是支持 Emmet 的语法(如文件后缀是
.txt,或右下角显示Plain Text)→ 手动点右下角切换为HTML - 选区包含换行符且跨多行(尤其首尾有空格或空行)→ Emmet 对多行文本的包裹行为不稳定,建议先用
Ctrl+Shift+L拆行再逐行处理,或改用Ctrl+Shift+A(Wrap with Tag,Sublime 原生功能,不依赖 Emmet) - 快捷键被其他插件占用 → 在
Preferences → Key Bindings里搜wrap_with_abbreviation,确认绑定存在且无冲突 - Emmet 配置禁用了该命令 → 检查
Preferences → Package Settings → Emmet → Settings中是否有"disabled_commands"包含wrap_with_abbreviation
Wrap with Abbreviation 和原生 Wrap with Tag 有什么区别?
根本差异在于:前者走 Emmet 引擎,支持 CSS 选择器式缩写;后者只是简单套一层标签,不解析 class/id 属性。
比如选中 hello,用原生 Ctrl+Shift+A 输入 div.class1#id1,结果是:
hello
而 Ctrl+Shift+G 输入同样内容,得到的是标准 HTML:
hello
所以——要加属性,必须用 Wrap with Abbreviation;只要简单套个 或 ,原生命令更快、更轻量。
真正容易被忽略的是:Emmet 的缩写解析严格依赖当前语法上下文。比如在 JSX 文件里,默认不启用 HTML 缩写,得手动在 Emmet → Settings 里把 jsx 加进 variables 或 extensions 列表里,否则 Ctrl+Shift+G 就是静音状态。











