ctrl+d是逐个向后匹配当前选区内容的多光标操作,非全选;alt+f3(或ctrl+cmd+g)才是全文匹配全选;ctrl+f+alt+enter支持可控筛选,避免误改注释、字符串等上下文。

Ctrl+D 是逐个加光标,不是全选
很多人按着 Ctrl+D 一直点,指望它“自动选完所有相同词”,结果只加了两三个就停了——因为 Ctrl+D 的行为是「严格匹配当前选区内容,并只向后找下一个」。它不回溯、不跳过、也不管你是不是在注释里。
常见错误现象:Ctrl+D 按了没反应,大概率是光标停在空格、引号或括号边;或者你双击选中了 "user_id"(带引号),它就只匹配带引号的字符串,不会命中变量名 user_id。
- 确保光标落在目标词的字母内部(比如
user_id的u或d上),再按Ctrl+D - 想跳过当前高亮项(比如注释里的同名字符串)?先按
Ctrl+K,再按Ctrl+D - 误加了?按
Ctrl+U撤销上一次光标添加,不是Ctrl+Z - 右下角的
.*图标必须是灰的(正则关闭),否则Ctrl+D会按正则规则匹配,结果不可控
Alt+F3 才是真·全选所有匹配项
Alt+F3(Windows/Linux)或 Ctrl+Cmd+G(macOS)会立刻选中当前光标所在词在全文的所有匹配位置,这才是“批量替换变量名”的可靠起点。
但它很刚:一旦触发,所有匹配项都被锁死,后续输入会无差别同步到每个位置。如果你没注意上下文,user_id 在 JSON 字符串值里、在注释中、在正则字面量里,它一样全改。
- 必须先手动双击或拖选目标词(如
log),确保只选中纯标识符,不带空格、引号、括号 - 右下角
Aa控制大小写敏感,默认不区分,如需严格匹配User不含user,要点一下关掉 - 如果按了没反应,检查是否被插件劫持:打开
Preferences → Key Bindings,搜find_all_under确认绑定正确 - 改完发现太多?按
Esc一键清空所有多光标,别硬着头皮删
Ctrl+F + Alt+Enter 是可控筛选路径
当你不确定要不要全改,比如只想改代码区的 id,跳过 JSON 值、字符串和注释里的 id,Ctrl+F 打开查找面板才是安全出口。它能看见匹配数、加正则、限定范围。
光标停在目标词上(如 id),按 Ctrl+F,Sublime 自动填入该词;点右下角图标调参:Alt+W 控制 whole word,Alt+C 控制大小写,Alt+R 开正则(如 \bid\b(?!\s*:) 排除键名)。
- 确认无误后,按
Alt+Enter(Win/Linux)或Cmd+Enter(macOS)触发Select All - 想只选 JSON 中的
"id"字段名而不选值?用正则"id"(?=\s*:),再点Select All - 如果文件有混合换行符(
\r\nvs\n),正则可能失效,先用Ctrl+Shift+P → Set Line Endings → Unix统一
多光标后最容易被忽略的语义破坏点
Sublime 不做语法校验,也不区分上下文。你用 Alt+F3 选中 12 处 user_id,其中 3 处在 JSON 字符串值里、2 处在注释中,它照样一起改——改完代码可能直接报错或逻辑错乱。
这不是功能缺陷,而是设计使然:Sublime 的多光标是纯文本层操作。真正安全的重构,得配合跳转定义、引用查找等语义工具,不能只靠视觉匹配。
最常被忽略的是列对齐风险:用 Ctrl+Shift+L 拆多行后,如果某几行开头缩进不一致(比如有的空格、有的 Tab),光标不会自动对齐到同一列,直接输入可能让结构错位。建议先 Ctrl+Shift+P → Trim Trailing White Space 清理,再操作。











