多光标批量修改分四类:全量匹配用alt+f3(win/linux)或ctrl+cmd+g(macos),需光标在词内、关闭正则、注意大小写;正则匹配须先find all再ctrl+alt+g;已有选区用ctrl+shift+l按行拆光标;手动加光标用ctrl+click但易被拦截,列选择建议用命令面板开启。

想用多光标批量改多个匹配项,别直接狂按 Ctrl+D——它只往后找一个、不跳过注释、也不管你是不是真想全选。真正稳的操作是分三类场景走不同路径。
全量匹配:光标停在词上按 Alt+F3(Win/Linux)或 Ctrl+Cmd+G(macOS)
这是最常用也最容易翻车的入口。它本质是执行 find_all_under 命令,但有三个硬前提:
- 光标必须落在目标词的任意字母上(比如
user_id的u或d),停在空格、引号、括号边就无效 - 右下角不能亮着
.*(正则模式必须关闭),否则它按正则规则匹配,结果不可控 - 大小写由右下角
Aa按钮控制,默认不区分,User和user会被一起选中
常见错误:按了没反应 → 检查快捷键是否被插件劫持(Preferences → Key Bindings 搜 find_all_under);选中了 "api_url" 却改不了变量名 → 先双击词本体去掉引号再操作。
正则匹配:先 Find All,再按 Ctrl+Alt+G(Win/Linux)或 Ctrl+Cmd+G(macOS)
正则没法绕过 Find All 这一步。单纯输正则、按 Alt+F3 是无效的。
- 打开
Ctrl+F,输入正则(如\bconsole\.log\b或"(.*?)"),勾选右下角.* - 点击
Find All或按Enter—— 此时只是高亮+跳转,还不能编辑 - 再按
Ctrl+Alt+G(Win/Linux)或Ctrl+Cmd+G(macOS),所有匹配才变成可编辑光标
容易踩的坑:(.*) 跨行吞掉所有引号 → 改成 (.*?) 并勾选右下角 \n(.匹配换行); 替换为空 → 检查括号是否成功捕获,比如 (\w+)\.js$ 在 main.min.js (末尾有空格)里就不匹配。
已有选区扩展:用 Ctrl+Shift+L 把多行文本拆成光标
Ctrl+Shift+L 不是搜索命令,它是“选区扩展器”,只对当前已选中的内容起作用。
- 必须先有明确选区:比如拖选 5 行日志,或双击一个词,再按
Ctrl+Shift+L - 它会把选区按换行符拆开,每行末尾生成一个光标;如果选区里没换行符,就什么也不做
- 如果某行结尾是
\r\n(Windows)而另一行是\n(Unix),它仍能正常工作;但若某行末尾有空格或制表符,光标会落在空格后,容易误删
适用场景:处理 CSV 行数据、日志列表、JSON 数组项。想改每行第 2 列?得先用正则选中对应字段,再 Ctrl+Shift+L,不能靠猜位置。
手动加光标:Ctrl+Click 和列选择要避开系统拦截
Ctrl+Click(Win/Linux)或 Cmd+Click(macOS)适合在不同行、不同位置手动指定光标,但它受环境干扰大。
- 某些远程桌面或键盘布局会拦截
Shift+Alt(列选择)或Ctrl+Click,导致失效 - 纯空白行末尾可能无法响应
Ctrl+Click,因为那里没有可编辑字符 - 列选择(
Shift+Alt+拖拽)不是多光标,而是竖向框选;用完必须按Esc或点空白处退出,否则Ctrl+D不生效
替代方案:用命令面板 Ctrl+Shift+P 输入 Column Selection 手动开启列选,比硬按组合键更可靠。











