多光标编辑是修改5行以上重复代码时最高效的方式,支持精准定位(Alt/Option+点击)、逐词扩展(Ctrl/Cmd+D)、全文匹配(Ctrl/Cmd+Shift+L)和列选择(Alt/Option+Shift+拖拽)四种核心操作。

多光标编辑不是“锦上添花”,而是你在改 5 行以上重复代码时,唯一值得伸手去按的快捷键组合。它不依赖正则、不触发全局替换风险,直接作用于你眼睛看到的位置——只要操作对,改 10 行和改 1 行耗时几乎一样。
Alt/Option + 点击:最可控的光标落点方式
这是唯一能让你把光标精准钉在任意字符间隙的操作,比如在每行 const 后面、return 前面、或 JSON 键名引号之间插入内容。鼠标点击位置即光标生成位置,不依赖文本匹配逻辑,也不受作用域限制。
- Mac 上必须用
Option键(不是Cmd),Windows/Linux 用Alt;松手即生效,按住不放再点才连续添加 - 如果误点,按
Esc可一键退出多光标状态,所有光标消失,不会残留选区 - 不建议在超长行(如单行 JSON)里用此方式点选——鼠标微小偏移就会落到错误列,此时应改用
Ctrl+Shift+L
Ctrl/Cmd + D:逐个扩展相同词的光标
当你已经把光标放在一个变量名、函数名或字符串字面上,Ctrl+D(Win/Linux)或 Cmd+D(Mac)会向后扫描,每次按键选中下一个完全相同的 token,并在对应位置加光标。它只匹配完整单词,不跨行缩写或子串。
- 选中
user后按Cmd+D,不会选中username或users - 按错一次?立刻按
Cmd+U撤销上一个匹配,可连按多次退回初始状态 - 若目标词在注释里也存在(比如
// user.id),它也会被选中——注意检查上下文是否干净
Ctrl/Cmd + Shift + L:全文档同词批量加光标
比 Ctrl+D 更激进,一步选中当前文件中所有匹配项。适合局部重构,比如函数参数重命名、对象 key 统一调整,但前提是确认这些词确实都该改——它不管作用域,也不区分大小写(默认)。
- 选中
data后按Cmd+Shift+L,所有data字符串、变量、属性都会被标记 - 若只想改某一段落里的匹配项,先用鼠标选中那段区域,再按
Cmd+Shift+L,VSCode 会自动限制作用域到选区内 - 改完后别急着按
Enter或移动光标——多光标状态下任意方向键会让所有光标同步移动,容易错位;优先用Esc退出再检查
Alt/Option + Shift + 拖拽:列选择模式的核心入口
这是处理对齐结构的唯一可靠方式,比如给多行赋值语句统一加前缀、调整表格字段缩进、或在日志语句开头插入调试标识。它生成的是垂直等距光标列,不是基于文本内容。
- 拖拽时必须按住
Option+Shift(Mac)或Alt+Shift(Win/Linux),松开鼠标才完成选区;中途松键会导致变成普通选区 - 列选区域一旦建立,输入任何字符(包括
Tab、Backspace)都会作用于每一行对应列,但删除操作只删光标所在位置的单个字符,不会整行删 - 如果拖拽终点落在某行末尾之外,VSCode 会在该行末尾自动补空格以对齐——这可能导致意外缩进,建议提前用
End键确认行尾位置
真正卡住人的从来不是“怎么加光标”,而是加完之后光标位置是否一致、输入是否真的同步、以及退出时有没有残留选区。多光标是精确工具,不是魔法——它不会帮你判断语义,只忠实地执行你指定的位置操作。


















