Ctrl+D仅向后逐个匹配完整字符串,不回溯、不跳过、不智能过滤;全选同名词需用Ctrl+Alt+G(前提:纯文本选中、关闭正则、大小写设置正确)。

想用多光标改同名变量或关键字,别连按 Ctrl+D 碰运气——它只往后找下一个,不跳过、不回溯、不智能过滤,错一次就漏改或误改。
为什么 Ctrl+D 总是选不全、跳过或加错位置
Ctrl+D 的行为完全由你「第一次怎么选中」决定:
- 光标没选中任何东西时按
Ctrl+D:Sublime 自动双击光标所在位置,但这个“双击”可能包进空格、引号、括号甚至换行符(比如停在"user_id"的引号外,它会选中整个带引号字符串) - 已选中
user_id再按Ctrl+D:它严格匹配这个完整字符串,不会命中变量名user_id(如果选区含引号)或子串my_user_id - 默认开启
match_whole_word:所以user不会匹配username;想关掉?按Alt+W - 光标停在单词边界(如
user_id前的空格或后括号)时,Ctrl+D可能失效或只选中符号
Ctrl+Alt+G 才是真·全选同名词,但三个条件缺一不可
这是 Sublime 原生命令 find_all_under,不是 Ctrl+D 的增强版,它无视光标位置,只认你当前选中的纯文本内容:
- 必须先手动双击或拖选目标词(如
api_timeout),确保只选中标识符本身,不带空格、引号、括号 - 右下角不能亮着
.*图标(正则模式必须关闭),否则它按正则规则匹配,结果不可控 - 大小写开关由右下角
Aa控制;默认不区分大小写;如需严格匹配User而不含user,要点一下关闭 - 按了没反应?检查插件是否劫持快捷键:打开
Preferences → Key Bindings,搜find_all_under,确认绑定的是ctrl+alt+g(Win/Linux)或ctrl+super+g(macOS)
想精准控制范围?用 Ctrl+F + Alt+Enter 组合
当你不确定全选会不会误伤(比如只想改代码区,跳过字符串和注释),这才是可控路径:
- 光标停在目标词上(如
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
改完才发现语法错了?多光标根本不判断上下文
多光标同步输入时,它不管你是改 Python 变量、JSON key 还是 SQL 字符串——只要光标落进去,就直接插。最容易被忽略的破坏点:
- 光标落在字符串中间(如
"user_id"的_上),输入会把下划线替换成新字符,变成"userid" - 光标落在 JSON key 引号内(如
"user_id"的u上),加前缀可能变成"new_user_id",但 value 里的"user_id"也被改了 - 跨行匹配时,若文件混用
\r\n和\n,部分匹配会被截断,尤其在长字符串或注释里 - 真正安全的底线是加单词边界:
\buser_id\b;但注意\b对中文无效,且不能防止引号内匹配

















