真正一键全选的快捷键是Alt+F3(Windows/Linux)或Ctrl+Cmd+G(macOS),但默认大小写敏感、全词匹配;Ctrl+D为逐个追加匹配项,需光标落在单词字母范围内才生效。

Ctrl+D 不是“全选相同词”,而是“逐个追加匹配项”;真正一键全选的快捷键是 Alt+F3(Windows/Linux)或 Ctrl+Cmd+G(macOS),但默认大小写敏感、默认全词匹配——不调对参数,就容易漏选或误选。
Ctrl+D 按下没反应?先看光标落点
它只响应光标落在单词“字母范围内”的情况。光标停在 user_id 的下划线后、引号内、空格上,甚至紧贴括号旁,第一次按都可能选中空白或符号,而不是词本身。
- 双击目标词(如
api_timeout)是最稳的起手方式,确保整词被选中 - 已部分选中时(比如只框了
log而不是整个console.log),Ctrl+D就按你框的那截去匹配,不会自动扩边 - 想跳过某个匹配(比如字符串里的同名字段),按
Ctrl+K再按Ctrl+D,它会跳过当前高亮项继续找下一个 - 选多了?按
Ctrl+U撤销上一次添加,比狂按Esc精准得多
Alt+F3 或 Ctrl+Cmd+G 为什么漏选了 user 和 User?
因为默认开启大小写敏感(右下角状态栏显示 case)。Alt+F3(Windows/Linux)和 Ctrl+Cmd+G(macOS)都遵循这个规则:严格区分大小写、默认启用 Whole Word。
- 点击右下角
case切换开关,关闭后User和user才会被一并选中 - 如果光标在
get_user_name()中,但落在_上,Alt+F3可能只匹配get或name——先双击选中完整标识符,再触发全选 - 想匹配子串(比如所有含
id的变量),得先按Alt+W关掉Whole Word,否则user_id里的id不会被单独揪出来
正则模式开着,Ctrl+Alt+G 全选变“乱选”?
当右下角显示 .*(正则激活),Ctrl+Alt+G(Windows/Linux)或 Ctrl+Cmd+G(macOS)会按正则逻辑匹配,而不是纯文本。一个没注意,注释、字符串、JSON 值全被卷进来。
- 执行前务必确认右下角没有
.*,有就点一下关掉 - 真要靠正则限定上下文(比如只改函数参数里的
id),走Ctrl+F→ 输入\bid\b→ 点右下角W确保全词 → 再按Alt+Enter更可控 - 匹配数超 500(比如日志里满屏
i),界面会明显卡顿甚至无响应——这时别硬进多光标编辑态,直接用Ctrl+H替换更稳
为什么 Ctrl+Shift+J 有时只选中一行?
它不是按缩进“选段”,而是向外扩展语法作用域。失效通常不是快捷键坏了,而是语言模式或光标位置不对。
- 右下角语言模式必须匹配内容:写 Python 却显示
Plain Text,Ctrl+Shift+J就可能卡在字符串里 - 光标不能落在注释、字符串、折叠代码块内部——这些位置会中断 scope 层级,导致无法进入外层结构
- 自定义语法或 DSL 缺少完整 scope 定义时,该命令会退化为单行选择,此时可配合
Ctrl+Shift+A(Expand Selection)逐层往外扩,或装ExpandRegion插件补足
最常被忽略的点:所有批量选中操作都只作用于当前文件,不会跨标签页;且 Alt+F3 和 Ctrl+Cmd+G 都不区分作用域——注释、字符串、JSON 值里的相同文本,只要字面一致,就会被拉进来。编辑前扫一眼右下角的 case 和 .* 状态,比事后修复快十倍。


















