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
回车后,选中的文本就会被包裹成:
立即学习“前端免费学习笔记(深入)”;
<div class="my-class" id="my-id">[你的文本]</div>
常见缩写习惯:
-
p→<p>...</p><div class="aritcle_card flexRow"> <div class="artcardd flexRow"> <a class="aritcle_card_img" href="/ai/1706" title="一帧秒创"><img src="https://img.php.cn/upload/ai_manual/000/969/633/68b6d37de74c4152.png" alt="一帧秒创" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a href="/ai/1706" title="一帧秒创">一帧秒创</a> <p>基于秒创AIGC引擎的AI内容生成平台,图文转视频,无需剪辑,一键成片,零门槛创作视频。</p> </div> <a href="/ai/1706" title="一帧秒创" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div> -
span.red→<span class="red">...</span> -
a[href="https://example.com"]→<a href="https://example.com">...</a> -
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,结果是:
<div.class1#id1>hello</div.class1#id1>
而 Ctrl+Shift+G 输入同样内容,得到的是标准 HTML:
<div class="class1" id="id1">hello</div>
所以——要加属性,必须用 Wrap with Abbreviation;只要简单套个 <p></p> 或 <span></span>,原生命令更快、更轻量。
真正容易被忽略的是:Emmet 的缩写解析严格依赖当前语法上下文。比如在 JSX 文件里,默认不启用 HTML 缩写,得手动在 Emmet → Settings 里把 jsx 加进 variables 或 extensions 列表里,否则 Ctrl+Shift+G 就是静音状态。










