Ctrl+D按顺序选中未修改的相同单词,改过的内容会被跳过;需全选所有匹配项应使用Ctrl+Shift+L。

Ctrl+D 重复选中单词,但光标会跳过已修改部分
VSCode 默认的 Ctrl+D(Windows/Linux)或 Cmd+D(macOS)是按词增量选中——每次按一次,就选中下一个匹配的当前选中词。但它有个关键限制:只找「未被编辑过的原始文本」。一旦你改了某处,后续的 Ctrl+D 就会跳过它,继续往后找下一个未改动的匹配项。
常见错误现象:Ctrl+D 突然“少选一个”,或者光标停在奇怪位置——大概率是你之前手动改过其中某处内容。
- 想严格按顺序选中所有同词(不管是否改过),用
Ctrl+Shift+L(全部选中当前词)更可靠 - 选中后若要统一替换,直接输入新内容即可;若只是编辑,建议先完成所有选中再动笔,避免打断流程
-
Ctrl+U可以撤销上一次Ctrl+D的选中,比退格更安全
正则批量选中需要打开搜索面板并启用 Regex 模式
单纯靠 Ctrl+D 只能匹配完整单词,没法处理“所有数字”“带下划线的变量名”这类模式。这时候必须进搜索面板:Ctrl+H → 点击右上角 .* 图标(启用正则)→ 输入表达式 → 按 Alt+Enter(Windows/Linux)或 Option+Enter(macOS)一键选中全部匹配项。
常用场景举例:
- 选中所有函数调用:
\w+\(\)(注意括号要转义) - 选中所有 CSS 类名:
class=["']([^"']*)["'],然后用捕获组$1替换更安全 - 别忘了检查大小写:默认区分,如需忽略,点搜索框右侧
Aa按钮关闭
多光标粘贴时,每行内容会被分别填入每个光标位置
当你用 Ctrl+Shift+L 或正则选中多处后,直接粘贴(Ctrl+V)的行为取决于剪贴板内容格式。如果复制的是单行文本,它会填到每个光标所在位置;如果复制的是多行文本(比如从表格里复制三行),VSCode 会按行一一对应粘贴——第一行贴到第一个光标,第二行贴到第二个光标……超出部分会被丢弃。
容易踩的坑:
- 想给每行加前缀?先选中所有行首(
Ctrl+Alt+↑/↓或Shift+Alt+I),再输入前缀,别依赖粘贴 - 从 Excel 复制带换行的数据,可能因制表符或不可见字符导致错位,建议先粘到纯文本编辑器里清理一下
- 不确定粘贴效果?先用
Ctrl+Z撤回,再试一次
扩展插件不是必须的,但 Bracket Pair Colorizer 能帮定位嵌套结构中的重复内容
遇到 JSON、HTML 或深层嵌套的 JS 对象时,想批量选中某个字段(比如所有 "id" 字段值),光靠关键词选中容易误伤。此时颜色化括号配对本身不直接提供批量功能,但它让结构一目了然,帮你快速判断哪些 "id" 真正在同一层级、哪些是子对象里的——从而决定该用正则还是手动加选。
替代方案(不装插件):
- 用
Ctrl+Shift+P→ 输入Go to Symbol in File(@),再输字段名,快速跳转所有定义点 - 在搜索框里输入
"id":\s*"(注意空格和引号),配合正则更精准 - 复杂结构建议先折叠无关区域(点击行号旁的
−),减少视觉干扰
真正难的不是怎么选,而是确认“哪些才算相同内容”——上下文、作用域、引号类型、前后空格,都可能让看似一样的字符串在语义上完全不同。


















