sublime多光标选词需分清三命令:ctrl+d(增量向后选)、ctrl+alt+g(全量严格匹配)、ctrl+f+alt+enter(可控查找筛选),误用易致漏改、误改或语法破坏。

Sublime 里选中相同单词,不是靠“猜”或“连按 Ctrl+D”,而是分清三个命令的职责:Ctrl+D(增量)、Ctrl+Alt+G(全量)、Ctrl+F + Alt+Enter(可控)。用错一个,就容易漏改、误改、卡顿甚至破坏语法结构。
Ctrl+D 只加下一个,不是全选,更不回溯
Ctrl+D 的行为完全取决于你第一次怎么选中目标词:没选中时它自动双击光标位置——但这个“双击”可能包进空格、引号甚至换行符;已选中一段文本(比如"user_id")再按,它就严格匹配带引号的字符串,不会命中变量名user_id。
- 光标必须落在单词字母内(比如
user_id的u或d上),停在空格、括号或引号前/后会失效 - 默认开启
whole word,所以user不会匹配username;想关掉?按Alt+W - 按一次选中当前词,再按一次选中“下一个”(只往后找,不跳过注释、不回看前面)
- 想跳过当前高亮项(比如注释里的同名字符串)?先按
Ctrl+K,再按Ctrl+D - 误加了?按
Ctrl+U撤销上一次选中,不是Ctrl+Z
Ctrl+Alt+G 才是真·全选,但前提很硬
Ctrl+Alt+G(Win/Linux)或 Ctrl+Cmd+G(macOS)触发的是 find_all_under 命令,它无视光标位置,只认你当前选中的纯文本内容。但它不宽容——三个条件缺一不可:
- 必须先手动双击或拖选目标词(如
api_timeout),确保只选中标识符,不带空格、引号、括号 - 右下角不能亮着
.*图标(正则模式必须关闭),否则它按正则规则匹配,结果不可控 - 大小写开关由右下角
Aa控制,默认不区分大小写;如需严格匹配User不含user,要点一下关闭 - 按了没反应?检查插件是否劫持快捷键:打开
Preferences → Key Bindings,搜find_all_under,确认绑定正确
Ctrl+F + Alt+Enter 是最稳妥的过滤路径
当你不确定全选会不会误伤(比如只想改代码区,跳过字符串和注释),Ctrl+F 打开查找面板才是可控起点。它能看见匹配数、加正则、限定范围,适合重构前的谨慎操作。
- 光标停在目标词上(如
log),按Ctrl+F,Sublime 自动填入该词 - 点右下角图标调参:
Alt+W控制 whole word,Alt+C控制大小写,Alt+R开正则(如\blog\b) - 确认无误后,按
Alt+Enter(Win/Linux)或Cmd+Enter(macOS)触发Select All - 想只选 JSON 中的
"id"字段名而不选值?用正则"id"(?=\s*:),再点Select All
多光标编辑后最容易被忽略的语义破坏点
Sublime 不做语法校验,也不区分上下文。你用 Ctrl+Alt+G 选中 12 处 user_id,其中 3 处在 JSON 字符串值里、2 处在注释中,它照样一起改。更危险的是光标落点:如果光标落在字符串引号内、JSON key 的冒号后、或某行末尾的换行符前,输入内容会直接插进去,可能破坏结构。
真正稳的做法永远是:双击目标词确认整词被选中,再触发多光标动作;改完立刻扫一眼缩进和引号配对——多光标输入会吃掉原有空格,若发现某处缩进塌了,说明那行原本有前置空格被覆盖,得手动补。











