多光标编辑 #
什么是多光标? #
多光标编辑是 VSCode 最强大的功能之一,它允许你同时在多个位置进行编辑,大幅提升批量修改的效率。
text
┌─────────────────────────────────────────────────────────────┐
│ 单光标 vs 多光标 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 单光标编辑: │
│ const user1 = 'Alice|'; │
│ const user2 = 'Bob'; │
│ const user3 = 'Charlie'; │
│ 需要修改 3 次 │
│ │
│ 多光标编辑: │
│ const user1 = 'Alice|'; │
│ const user2 = 'Bob|'; │
│ const user3 = 'Charlie|'; │
│ 一次修改全部完成 │
│ │
└─────────────────────────────────────────────────────────────┘
添加光标 #
鼠标操作 #
| 功能 | Mac | Windows/Linux | 说明 |
|---|---|---|---|
| 添加光标 | ⌥+点击 | Alt+点击 | 在点击位置添加光标 |
| 列选择 | ⇧⌥+拖动 | Shift+Alt+拖动 | 矩形区域选择 |
键盘操作 #
| 功能 | Mac | Windows/Linux | 说明 |
|---|---|---|---|
| 在上方添加光标 | ⌥⌘↑ | Ctrl+Alt+↑ | 在上方行添加光标 |
| 在下方添加光标 | ⌥⌘↓ | Ctrl+Alt+↓ | 在下方行添加光标 |
| 在下一个匹配处添加光标 | ⌘D | Ctrl+D | 选择下一个匹配项 |
| 选择所有匹配项 | ⇧⌘L | Ctrl+Shift+L | 选择所有匹配项 |
使用 ⌘D / Ctrl+D 选择 #
基本用法 #
text
1. 选中一个词
2. 按 ⌘D / Ctrl+D
3. 继续按 ⌘D / Ctrl+D 选择更多匹配项
4. 同时编辑所有选中位置
示例:批量修改变量名 #
javascript
// 原始代码
const userName = 'Alice';
console.log(userName);
return userName;
// 操作步骤:
// 1. 选中第一个 "userName"
// 2. 按 ⌘D / Ctrl+D 两次(选择所有 userName)
// 3. 输入新的变量名 "name"
// 修改后
const name = 'Alice';
console.log(name);
return name;
使用 ⇧⌘L / Ctrl+Shift+L 选择所有 #
基本用法 #
text
1. 选中一个词
2. 按 ⇧⌘L / Ctrl+Shift+L
3. 一次性选择所有匹配项
示例:修改所有相同内容 #
javascript
// 原始代码
const user = {
name: 'Alice',
age: 25
};
const admin = {
name: 'Bob',
age: 30
};
// 操作步骤:
// 1. 选中 "name"
// 2. 按 ⇧⌘L / Ctrl+Shift+L
// 3. 输入 "username"
// 修改后
const user = {
username: 'Alice',
age: 25
};
const admin = {
username: 'Bob',
age: 30
};
列选择模式 #
进入列选择 #
| 功能 | Mac | Windows/Linux | 说明 |
|---|---|---|---|
| 切换列选择模式 | ⇧⌥⌘→ | Shift+Alt+Ctrl+→ | 切换列选择 |
| 鼠标列选择 | ⇧⌥+拖动 | Shift+Alt+拖动 | 矩形选择 |
列选择示例 #
javascript
// 原始代码
const a = 1;
const b = 2;
const c = 3;
// 使用列选择选中 "const "
const a = 1;
const b = 2;
const c = 3;
// 删除后
a = 1;
b = 2;
c = 3;
多光标实战案例 #
案例1:批量添加前缀 #
javascript
// 原始代码
Alice
Bob
Charlie
// 操作步骤:
// 1. ⌥⌘↓ / Ctrl+Alt+↓ 在每行添加光标
// 2. 输入 "const user"
// 修改后
const userAlice
const userBob
const userCharlie
案例2:批量添加引号 #
javascript
// 原始代码
Alice
Bob
Charlie
// 操作步骤:
// 1. ⌥⌘↓ / Ctrl+Alt+↓ 添加多光标
// 2. Home 跳到行首,输入 "
// 3. End 跳到行尾,输入 "
// 修改后
"Alice"
"Bob"
"Charlie"
案例3:批量修改数组元素 #
javascript
// 原始代码
const items = [
apple,
banana,
orange
];
// 操作步骤:
// 1. 选中 "apple"
// 2. ⌘D / Ctrl+D 选择其他水果名
// 3. 输入 "'" 包裹
// 修改后
const items = [
'apple',
'banana',
'orange'
];
案例4:批量添加注释 #
javascript
// 原始代码
const a = 1;
const b = 2;
const c = 3;
// 操作步骤:
// 1. ⌥⌘↓ / Ctrl+Alt+↓ 在每行添加光标
// 2. Home 跳到行首
// 3. 输入 "// "
// 修改后
// const a = 1;
// const b = 2;
// const c = 3;
高级技巧 #
1. 撤销光标选择 #
在使用 ⌘D / Ctrl+D 选择时,如果选多了:
text
按 ⌘U / Ctrl+U 撤销上一个光标选择
2. 跳过某个匹配项 #
在使用 ⌘D / Ctrl+D 时,如果想跳过某个匹配项:
text
按 ⌘K ⌘D / Ctrl+K Ctrl+D 跳过当前匹配,选择下一个
3. 使用正则表达式选择 #
text
1. ⌘F / Ctrl+F 打开搜索
2. 启用正则表达式模式
3. 输入正则表达式
4. 按 ⌥Enter / Alt+Enter 选择所有匹配项
正则选择示例 #
javascript
// 原始代码
const user_name = 'Alice';
const user_age = 25;
const user_email = 'alice@example.com';
// 操作步骤:
// 1. ⌘F / Ctrl+F 打开搜索
// 2. 启用正则表达式
// 3. 输入 "user_\w+"
// 4. ⌥Enter / Alt+Enter 选择所有匹配项
// 5. 批量修改
// 修改后
const userName = 'Alice';
const userAge = 25;
const userEmail = 'alice@example.com';
多光标操作流程 #
text
┌─────────────────────────────────────────────────────────────┐
│ 多光标编辑流程 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 开始 │
│ │ │
│ ├─────▶ 相同内容? │
│ │ │ │
│ │ ├─ 是 ─▶ ⌘D / Ctrl+D 逐个选择 │
│ │ │ 或 ⇧⌘L / Ctrl+Shift+L 全选 │
│ │ │ │
│ │ └─ 否 ─▶ 连续行? │
│ │ │ │
│ │ ├─ 是 ─▶ ⌥⌘↓ / Ctrl+Alt+↓ │
│ │ │ │
│ │ └─ 否 ─▶ ⌥+点击 / Alt+点击 │
│ │ │
│ └─────▶ 编辑内容 │
│ │ │
│ └─────▶ 完成 │
│ │
└─────────────────────────────────────────────────────────────┘
快捷键速查表 #
添加光标 #
| 功能 | Mac | Windows/Linux |
|---|---|---|
| 在上方添加光标 | ⌥⌘↑ | Ctrl+Alt+↑ |
| 在下方添加光标 | ⌥⌘↓ | Ctrl+Alt+↓ |
| 添加下一个匹配项 | ⌘D | Ctrl+D |
| 添加上一个匹配项 | ⌘K ⌘D | Ctrl+K Ctrl+D |
| 选择所有匹配项 | ⇧⌘L | Ctrl+Shift+L |
| 撤销光标 | ⌘U | Ctrl+U |
列选择 #
| 功能 | Mac | Windows/Linux |
|---|---|---|
| 列选择模式 | ⇧⌥⌘→ | Shift+Alt+Ctrl+→ |
| 鼠标列选择 | ⇧⌥+拖动 | Shift+Alt+拖动 |
常见问题 #
Q: 如何取消多光标? #
A: 按 Esc 键取消所有多光标,只保留一个光标。
Q: 多光标有数量限制吗? #
A: 默认限制是 10000 个光标,可以在设置中修改 editor.multiCursorLimit。
Q: 如何在多光标模式下移动光标? #
A: 使用方向键可以同时移动所有光标。
练习建议 #
练习1:批量修改变量名 #
text
1. 创建一个包含多个相同变量名的文件
2. 使用 ⌘D / Ctrl+D 逐个选择
3. 批量修改变量名
练习2:批量添加内容 #
text
1. 创建多行文本
2. 使用 ⌥⌘↓ / Ctrl+Alt+↓ 添加多光标
3. 在行首/行尾添加内容
练习3:列选择编辑 #
text
1. 创建多行代码
2. 使用 ⇧⌥+拖动 / Shift+Alt+拖动 进行列选择
3. 批量修改选中区域
下一步 #
现在你已经掌握了多光标编辑,接下来学习:
最后更新:2026-04-11