VSCode多行编辑有四种方式:1. Alt+拖选创建垂直光标;2. Ctrl+Alt+方向键逐行增删光标;3. Ctrl+D多重选择相同词;4. 正则查找替换实现条件批量修改,操作后需及时按Esc退出。

按住 Alt 键 + 鼠标左键拖选,直接创建多个光标
这是最直观的多行编辑方式,适合已知要修改的几行位置相对固定、且垂直对齐的情况。Windows/Linux 下按住 Alt,macOS 下按住 Option,再用鼠标左键从上到下(或从下到上)拖出一个竖直选区,VSCode 会自动在每行对应列位置插入光标。
注意点:
- 拖选时如果某行长度不够,光标会落在该行末尾,不是报错而是“尽力对齐”
- 松开鼠标后再打字,所有光标位置同步输入;按
Delete或Backspace也会同步删除 - 如果拖选后发现光标多了或少了,可按
Esc退出多光标模式,重试
Ctrl+Alt+↑/↓(Windows/Linux)或 Cmd+Option+↑/↓(macOS)逐行添加光标
当目标行不完全对齐,但有规律(比如每段开头、某个关键词后面),这个快捷键比拖选更精准。先将主光标放在第一处,然后反复按 Ctrl+Alt+↓ 向下追加光标,或 Ctrl+Alt+↑ 向上追加。
常见使用场景:
- 批量给多个变量名加前缀(如统一加
is) - 同时修改多个对象属性名(如把所有
name改成fullName) - 在多行末尾补相同字符(如加逗号、分号)
小技巧:按住 Ctrl+Alt 不放,连按方向键,光标会持续增加;松开后再操作,避免误触。
Ctrl+D(Windows/Linux)或 Cmd+D(macOS)选中相同词并逐个扩展
这个操作本质是「多重选择」而非纯多行编辑,但它常被用来实现跨行同步修改——尤其当你想改的是重复出现的变量、函数名或字符串时。
操作逻辑:
- 光标放在某个词上,按一次
Ctrl+D选中该词 - 再按一次,VSCode 会选中**下一个相同词**(按源码顺序,不跳行)
- 继续按,直到所有目标都被选中;此时输入任何内容,所有选区同步替换
- 若跳过了某个不该选的,可按
Ctrl+U撤销上一次选择
注意:Ctrl+D 默认只匹配**完整单词**(受 editor.wordSeparators 影响),如果想匹配子串(比如改所有含 url 的字段),需先用 Ctrl+F 打开搜索,勾选「Match Case」和「Whole Word」按需关闭,再用 Alt+Enter 全选匹配项,最后按 Esc 退出搜索框,进入多光标编辑状态。
使用正则 + 查找替换实现“隐式多行编辑”
真正需要跨任意行、带逻辑条件地批量修改时(比如“把所有 console.log 替换成 debugger,但只限 .ts 文件里”),原生多光标不够用,得靠 Ctrl+H 打开替换面板,开启正则模式(.* 按钮)。
典型例子:
const name = 'Alice'; const age = 30; const city = 'Beijing';
想把所有 const 改成 let,但只改声明语句开头的 const(不碰字符串里的):
- 查找框填:
^(\s*)const\s+(\w+) - 替换框填:
$1let $2 - 勾选
Match Case和Regex,再点Replace All
关键点:
-
^表示行首,避免匹配到字符串或注释中的const -
(\s*)捕获缩进,$1在替换中还原格式,不破坏代码结构 - 正则替换不会实时预览光标位置,务必先
Find All确认范围,再执行替换
Enter 换行或点了别的地方),所有额外光标立刻消失。真正难的不是怎么加光标,而是**怎么准确收口**——改完立刻按 Esc,别等它自己消失,否则可能误删或覆盖别的内容。










