ctrl+d只选中一个而非全部,因其本质是增量式多光标添加:从当前光标词出发向后线性查找下一个完全相同、区分大小写且全字匹配的单词,每次按键仅新增一个光标,不自动全选。

Ctrl+D 为什么只选中一个,而不是全部?
因为 Ctrl+D 本质是“增量式多光标添加”,不是全量搜索。它只从当前光标位置开始,往后找下一个**完全相同的文本片段**,且严格依赖你此刻光标停在哪、是否已选中内容。
常见错误现象:Ctrl+D 按了没反应,或只选中空格、标点、单词的一部分——大概率是光标卡在单词边界(比如 user_id 后面的下划线)、开头空格,或变量含连字符(data-url)被切开成两个 token。
- 确保光标落在目标变量的任意字母/数字/_/$ 内部,用方向键微调比鼠标点击更稳
- 如果变量是驼峰式(如
userName),双击可能只选中user;建议先拖选完整标识符,再按Ctrl+D - 按一次
Ctrl+D后,若想跳过下一个匹配项(比如注释里的同名字符串),先按Ctrl+K,再按Ctrl+D - 选多了可按
Ctrl+U逐次撤销上一个光标,不用Esc全退重来
真正一键全选所有相同词该用哪个快捷键?
用 Ctrl+Alt+G(Windows/Linux)或 Ctrl+Cmd+G(macOS),但必须先手动选中一个目标词(双击最可靠)。它等价于“自动填入查找框 + 执行 Find All”,不是靠光标悬停触发。
常见错误现象:按了没反应 → 状态栏提示 No selection found;漏选大小写变体 → 默认区分大小写;匹配了 logging 里的 log → 没开 Whole Word 模式。
- 务必先双击或拖选目标词(如
data),再按快捷键;空光标直接按会失败 - 大小写不敏感?先按
Ctrl+Alt+U切换 Case Sensitive 开关 - 避免匹配子串(如
log不要命中logging)?确保右下角W图标点亮(按Alt+W) - 超 500 处匹配时可能卡顿,此时改用
Ctrl+F→ 确认匹配数 →Alt+Enter更稳妥
批量改变量名,为什么 Ctrl+D 还是容易出错?
因为 Ctrl+D 和 Ctrl+Alt+G 都是纯文本匹配,不具备语法分析能力。它们无法区分 data 是变量、函数参数、JSON 键,还是字符串值 "data" 或注释里的 // data format。
常见错误现象:改完发现所有 "data" 字符串也被替换成 "title",缩进错乱,甚至把 data_url 里的 data 也截断了。
- 安全做法:先用
Ctrl+F搜一遍,确认无干扰项;若有,改用正则限定上下文(如\bdata\b(?![\'\"])) - 输入新名字时注意格式:若原词带引号(
"name"),直接输title会丢引号;应先按Ctrl+Shift+M选中引号内区域再改 - 跨作用域无效:闭包内引用的外层变量、import 的别名,Sublime 默认不会跨 scope 识别,这点和 VS Code 的
F2不同 - 语法类型必须正确:右下角显示
JavaScript或Python,否则作用域识别失效,Ctrl+Alt+G退化为全文本匹配
Alt+F3 和 Ctrl+Alt+G 到底有什么区别?
Alt+F3(Windows/Linux)和 Ctrl+Cmd+G(macOS)行为接近,但底层逻辑不同:Alt+F3 强制以光标所在“完整单词”为基准,严格整词匹配且默认开启 Match case;Ctrl+Alt+G 则更依赖已有选区,且不自动启用 Whole Word。
常见错误现象:Alt+F3 按了没反应 → 右下角 W 没亮;Ctrl+Alt+G 匹配了不该匹配的项 → 因为没手动开 Whole Word,或当前启用了正则(状态栏有 .*)。
-
Alt+F3更适合“确认变量名唯一、上下文干净”的场景,启动快,但容错低 -
Ctrl+Alt+G更灵活,支持已选区任意长度(哪怕只选中两个字符),但也更容易误匹配 - 两者都不处理折叠代码块:如果目标词在被折叠的函数里,它不会被选中
- 真正可控的路径是:双击词 →
Ctrl+F→ 手动确认Match whole word/Match case→Alt+Enter











