ctrl+d 是增量扩展匹配,只选中下一个完全相同的字符串,严格继承首次选中范围;ctrl+alt+g 才全量选中,但需满足手动选词、关闭正则、大小写设置三条件。

Ctrl+D 为什么只选中下一个,而不是全部
Ctrl+D 的本质是“增量扩展匹配”,不是搜索全量结果。它只往后找下一个**完全相同**的字符串,且严格继承你第一次选中的内容范围:没选中时自动双击光标位置——但这个“双击”可能包进空格、引号或换行符;已选中 "user_id" 再按,它就只匹配带引号的完整字符串,不会命中变量名 user_id。
常见错误现象包括:连按十次只加了 3 个光标、跳过了前面的匹配项、误选中注释里的同名字符串。原因基本就三点:
- 光标停在单词外(比如
user_id后面的空格或括号上),首次触发就失败 -
match_whole_word开启时,user不会匹配username;但关掉后又容易跨边界误中 - 文件混用
\r\n和\n换行符,导致部分匹配被截断
Ctrl+Alt+G 全量选中前必须确认三件事
Ctrl+Alt+G(Windows/Linux)或 Ctrl+Cmd+G(macOS)才是真正的一键全选,但它对前置条件很苛刻,缺一不可:
- 必须先手动双击或拖选目标词(如
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 处在注释中,它照样一起改。更隐蔽的问题是光标位置:
- 双击选词时多拖了一格空格,后续所有替换都带空格插入
-
Ctrl+Shift+L拆行后光标默认落在换行符前,看着在行尾,其实一输内容就顶替了那个\n - 在 Python 字符串中间或 JSON key 引号内直接输入,会破坏字符串闭合或 JSON 结构
最稳妥的做法:双击目标词确保只选中纯标识符,再按 Ctrl+D;改之前用 Ctrl+F 预览匹配上下文,尤其注意注释和字符串区域。











