Ctrl+D 是逐个加选相同单词而非重复上一行操作,从当前光标词向下匹配完全相同的实例,区分大小写且限于当前文件;Ctrl+K Ctrl+D 可跳过干扰项,Ctrl+U 软撤销,大范围替换应使用 Ctrl+Shift+F。

Ctrl+D 不是“重复上一行”,而是逐个加选相同单词
很多人按着 Ctrl+D 不放,以为在“复制上一行”或“重复操作”,结果光标越选越多、越改越乱——它根本不是重复命令,而是**从当前光标词出发,向下找下一个完全匹配的实例并加选**。
典型错误现象:光标停在 console.log 上狂按 Ctrl+D,结果把字符串里的 "console.log"、注释里的 // console.log 全选了,最后批量删掉整段逻辑。
- 必须先让光标落在一个完整单词内(比如
user_id的任意位置),Ctrl+D才会识别为“以该词为模板匹配” - 默认区分大小写,但不严格限定单词边界:若文档里有
users,Ctrl+D不会选中它;但若有USER_ID,且未关闭Match Case,它也不会被选中 - 不会跨文件生效,只作用于当前标签页(哪怕开了多个分割窗)
想跳过干扰项?用 Ctrl+K Ctrl+D 而不是狂按 Esc
当你连按 Ctrl+D 到第 4 处时,发现那是引号里的字符串,不想改——这时候别按 Esc 清空所有,更别关面板重来。直接按 Ctrl+K Ctrl+D,当前高亮项就被跳过,光标自动落到下一个匹配处,已选中的前 3 处保留不变。
这个组合键常被忽略,但它才是局部精准编辑的关键:比如批量修接口字段名,但要放过请求体 JSON 字符串里的同名 key。
-
Ctrl+K Ctrl+D是“跳过”,不是“撤销”;已选内容不受影响 - 如果手滑多按了一次
Ctrl+D,用Ctrl+U(软撤销)回退上一次加选,比Ctrl+Z更安全 - 误触
Alt+F3后残留光标导致粘贴错位?先Ctrl+U再Esc,比连按Esc稳得多
大范围替换别硬刚 Ctrl+D,用 Ctrl+Shift+F + Replace in Files
想改整个项目里所有 localStorage 为 sessionStorage?靠 Ctrl+D 一页页翻,不仅慢,还容易漏文件、跳过被折叠的代码块。
正确做法是:Ctrl+Shift+F 打开全局搜索 → 输入 localStorage → 左下角点 Replace in Files → 填入 sessionStorage → 点 Replace All。
- 支持正则、大小写开关、文件类型过滤(比如只改
*.js) - 替换前会预览所有匹配位置,可手动勾选/取消某些文件
- 大文件(>10MB)或匹配超 500 处时,
Ctrl+D全选会明显卡顿甚至假死,Ctrl+Shift+F更可靠
语法识别错,Ctrl+D 就像没装准星的枪
右下角显示 Plain Text 却在 .js 文件里狂按 Ctrl+D?那它根本不会按 JavaScript 规则切分单词——可能把 user_id 当成三个符号 user、_、id 来匹配,也可能把 const user_id = 整行当一个“词”处理。
真正起作用的是 Sublime 的语法解析器,它决定什么是“单词”、哪里是“边界”、哪些字符该被忽略(比如引号、括号)。一旦语法类型错,Ctrl+D 就失去语义感知能力。
- 快速切换语法:按
Ctrl+Shift+P→ 输入ssjs(JavaScript)、sspy(Python)、ssjson(JSON)等命令 - 临时验证:选中一个变量名 → 按
Ctrl+Shift+P→ 输入Find: Select All,看高亮是否合理 - 复杂配置文件(如 YAML/INI)常被识别为
Plain Text,这时Ctrl+D几乎不可用,优先走Ctrl+H查找替换
最常被忽略的点:不是快捷键不够快,而是你没等索引完成就搜函数;不是 Ctrl+D 不准,而是语法标签早就在右下角悄悄变灰了。

















