Ctrl+Shift+A(Win/Linux)或 Cmd+Shift+A(macOS)可精准选中HTML标签内文本内容(不含标签、不跨嵌套、不吞空格),前提是光标位于标签内部文本区而非属性区域;选中后按 Ctrl+D 锚定,再按 Ctrl+Alt+G(Win/Linux)或 Ctrl+Cmd+G(macOS)全选同类标签文本,实现批量编辑。

怎么用 Ctrl+Shift+A 选中 HTML 标签内容再加光标
直接把光标放在 <div class="header">content</div> 的 content 任意位置,按一次 Ctrl+Shift+A(Windows/Linux)或 Cmd+Shift+A(macOS),就会精准选中 content —— 不含标签、不跨嵌套、不吞空格。这是后续批量改属性值的前提。
常见错误:光标停在 class=" 后面就按,结果只选中引号内部分;或者停在标签名上按,会先选中整个标签而非内容。要改属性值,必须确保光标在标签内部文本区,而不是属性区域。
选中后别急着输,先按 Ctrl+D 把这个内容作为锚点,再按 Ctrl+Alt+G(Windows/Linux)或 Ctrl+Cmd+G(macOS)全选所有同类标签内容——前提是这些标签结构一致(比如都是 <p>xxx</p>)。否则得换正则。
怎么用正则 + Ctrl+Alt+Enter 改 id 或 class 属性值
想批量改所有 id="xxx" 里的 xxx,但不同标签里值长度、字符都不同,Ctrl+D 失效。这时必须进查找面板:Ctrl+H → 输入正则 id="([^"]*)" → 勾选 .*(正则模式)→ 点 Find All → 确认高亮了全部目标 → 按 Ctrl+Alt+Enter。
这个组合键只把捕获组 $1(即引号内的内容)变成光标,不会碰 id=" 或 "。安全,可控。
- 属性含转义字符?比如
data-url="http:\/\/example.com",正则得写成data-url="([^"]*)",不用手动转义斜杠,Sublime 自动处理 - 想只改特定标签下的属性?比如只改
<input>的name,正则换成<input>]*name="([^"]*)" - 误匹配了注释里的
id="xxx"?在查找面板点灯泡图标开启Highlight matches,肉眼扫一遍再执行
怎么给多行标签统一加新属性(如 data-testid)
目标是给已有的 <button></button>、<div> 等标签末尾补上 <code> data-testid="xxx"。不能靠 Ctrl+Shift+L 直接拆——因为光标落点不一致(有的在 > 前,有的在换行符前)。
正确流程:
- 先用
Ctrl+F搜<button> 或 <code><div>,勾选 <code>Whole Word和Regex,避免命中<button-group></button-group> -
Find All后按Ctrl+Alt+G,所有开标签起始位置都有光标 - 按
End,所有光标跳到当前行尾(即>后) - 输入空格和新属性,例如
data-testid="btn-submit" - 在用户设置里加
"swap_selection_on_replace": false,这样替换完光标还在,可立刻继续编辑 - 改属性时不走
Replace All,改用Ctrl+Alt+Enter生成光标后直接键盘输入——它绕过了替换面板,天然保留光标
注意:End 是关键。如果某行是 <button class="x"></button>,光标在 > 后按 End 会卡在行尾;如果是 <button></button> 单行,End 就落在 > 后,位置一致。
为什么改完属性后光标突然消失或只改了一行
最常踩的坑不是快捷键按错,而是替换操作触发了默认行为:Ctrl+H 里点 Replace All 后,所有额外光标会被清空,只剩主光标——你以为没生效,其实是改完了但没法继续输。
解决方法只有两个:
另一个隐形陷阱:HTML 文件里混着 JS 字符串,比如 el.innerHTML = '<div id="x">',正则会把这里的 <code>id="x" 也卷进去。遇到这种,别硬刚,先用 Ctrl+Shift+F 全局搜 <div id="</code">,确认右侧侧边栏列出的全是真实标签,再动手。</div>

















