vscode中ctrl+d(cmd+d)可连续选中相同未修改单词,ctrl+u撤销、esc清空,ctrl+k ctrl+d跳过当前;alt+click精准词选;ctrl+shift+l全量匹配;ctrl+shift+方向键按词扩展选区。

Ctrl+D(Windows/Linux)或 Cmd+D(macOS)连续按选中相同单词
这是 VSCode 最常用也最容易被低估的单词选取方式。按下一次 Ctrl+D 会选中光标所在位置的完整单词(以词边界为界),再按一次,会自动跳到文档中下一个**完全相同且未被修改过的单词**并选中它——注意:不是“下一个出现位置”,而是“下一个未被手动改动过的匹配项”。
常见错误现象:Ctrl+D 突然不工作了,或者只选中一次就停住。大概率是因为你之前手动编辑过某个已选中的实例(比如删了一个字母、加了个下划线),VSCode 默认会跳过所有被修改过的匹配项。
- 想重置匹配范围?按
Ctrl+U撤销上一次添加的选中,或直接按Esc清空全部多选 - 想跳过当前匹配项继续找下一个?按
Ctrl+K Ctrl+D(跳过当前,选中下一个) - 选中太多时容易误触,建议开启
"editor.multiCursorModifier": "ctrlCmd"配置,避免鼠标点击意外追加光标
双击单词 or Alt+Click(Windows/Linux)/ Option+Click(macOS)快速选中单个词
双击是基础操作,但很多人不知道 Alt+Click 的真正价值:它能在**任意位置精确触发词级选择**,不受光标是否落在单词内限制。比如光标停在括号后、逗号前,甚至空格中间,按住 Alt 点一下,依然能干净地选中紧邻的标识符。
使用场景:重构函数名、改参数名、批量替换字段时,比移动光标再双击快得多;尤其适合在 JSX/HTML 标签属性值里快速抓取变量名。
- 注意:默认情况下,
Alt+Click在部分显卡驱动或远程桌面中可能被系统劫持,可检查设置里"editor.multiCursorModifier"是否冲突 - 如果双击选中范围过大(比如把点号或连字符也算进去了),调整
"editor.wordSeparators"配置,例如去掉"."让user.name被识别为两个词
Ctrl+Shift+L(Windows/Linux)或 Cmd+Shift+L(macOS)一键选中全部相同单词
这个快捷键不逐个跳,而是直接全量匹配当前光标所在单词(纯文本匹配,区分大小写和全字匹配由当前搜索配置决定),生成所有匹配位置的光标。适合确定要全局改名、统一格式化或批量删补前缀的场景。
性能影响:文件越大、匹配越多,响应越明显延迟。10MB 日志文件里搜 "error" 可能卡顿 1–2 秒,此时建议先用 Ctrl+F 验证匹配数,或加引号限定为完整单词匹配。
- 它受当前编辑器的
caseSensitive和wholeWord搜索开关影响,不是固定行为 - 如果只想要“当前作用域内”的同名变量(比如只选函数内
i),这个命令做不到——得靠扩展如Highlight Matching Symbols - 选完别急着敲字,先确认有没有误中注释或字符串里的相同文本,否则一并改掉就麻烦了
Ctrl+Shift+Right/Left(Windows/Linux)or Option+Shift+Right/Left(macOS)按词移动并扩展选区
这不是单纯“选单词”,而是“以词为单位扩展已有选区”。光标在单词中间时,Ctrl+Shift+Right 会向右扩展到下一个词边界;如果已经选中部分内容,它会持续向外扩词,直到整行或遇到换行符为止。
为什么比双击更可控?双击要么太碎(标点分隔多),要么太宽(连带括号),而这个组合允许你从任意起点开始,用节奏感控制选区粒度,特别适合处理路径、URL、JSON key 或嵌套对象属性链。
- 配合方向键松开后再按,可以微调:比如先
Ctrl+Shift+Right选中data.items,发现多了个点,立刻Shift+Left缩回一个字符 - macOS 用户注意:
Option+Shift+Right默认可能被系统快捷键占用(如切换输入法),需在系统设置里禁用冲突项 - 这个操作不会触发多光标,纯单光标扩展,所以粘贴或删除时不会波及其它位置
Ctrl+D 和 Ctrl+Shift+L 的组合节奏:先 Ctrl+D 试两三次看是否符合预期,再决定是否全量执行。最易忽略的是匹配逻辑依赖当前搜索面板的状态——哪怕没打开搜索框,它的 wholeWord 和 caseSensitive 设置仍会影响 Ctrl+Shift+L 行为。











