sublime多光标编辑靠快捷键实时叠加光标,非开启模式;ctrl+d依光标状态匹配:未选中时取词,选中后匹配全文完全一致内容,且默认整词匹配;ctrl+shift+l仅对含换行符的选区生效,否则只生成一个光标。

Sublime 的多光标编辑不是“开启一个模式”,而是靠快捷键实时叠加光标位置——按错顺序、没选中内容、或输入法干扰,光标根本不会出现。
Ctrl+D 为什么有时只选中一个词,有时跳过目标?
Ctrl+D 的行为完全取决于当前光标状态和已选内容:没选中任何东西时,它会自动双击取词;但若光标落在 user_name 中间,可能只取到 _name,后续匹配全错。它默认按单词边界匹配(match_whole_word 开启),所以 user 和 user_id 不会被同时选中。
- 想跳过某个误匹配项(比如字符串里的同名内容):按
Ctrl+K再按Ctrl+D - 想撤销上一次扩展:按
Ctrl+U - 已选中一段文本再按
Ctrl+D,它会匹配该段文本的**完全一致内容**,而非单词 - 连续按太快可能漏掉一次匹配,建议节奏稳定:按一下 → 看是否新增光标 → 再按
Ctrl+Shift+L 为什么经常只生成一个光标?
Ctrl+Shift+L 的作用是把当前选区按换行符切片,每行末尾放一个光标。它不识别“你心里想选几行”,只认你实际选中的字符里有没有 \n。
- 鼠标拖选 3 行但没覆盖到最后一行的换行符 → Sublime 当作单行选区 → 只生成一个光标
- 安全做法:先用
Ctrl+L(选整行)连按多次选中目标行,再按Ctrl+Shift+L - 如果某行末尾有空格或制表符,光标会落在空格后,输入时容易误删缩进
- Mac 用户注意:
Cmd+Shift+L在搜狗、微软拼音等中文输入法下常被系统劫持,临时切英文输入法再试
Alt+拖动列选择 vs Ctrl+Click 手动加光标,怎么选?
两者机制完全不同:列选择是矩形区域,依赖各行在相同列上有字符;Ctrl+Click(macOS 是 Cmd+Click)是纯坐标点,不依赖文本内容,也不要求对齐。
- 要对齐修改参数列表第 2 列、CSV 的某一字段:用
Alt+Shift+鼠标拖动(Windows/Linux)或Option+Shift+拖动(macOS) - 要改分散在不同行、不同列的几个配置项(比如每行第 15、42、87 列):用
Ctrl+Click逐个点 - 列选择时如果某行该列是空格或换行符,光标会自动跳到行尾,导致错位
-
Ctrl+Alt+↑/↓可在当前行上下快速插入新光标,适合补日志前缀或批量加console.log
正则替换配合多光标,怎么避免递归污染?
直接搜 count 替换成 totalCount,可能把刚改好的 totalCount 里的 count 再套一层——形成 TotalTotalcount。必须用单词边界 \b 锚定。
- 查找框填
\bcount\b,替换框填totalCount:这样counter、my_count、"count"全部跳过 - 变量含特殊字符如
$api,得写成\$api\b;data$要写成data\$($在正则里是行尾锚点) - 启用 Regex 后,
.、*、+都变元字符,搜api.v1得写成api\.v1 - 跨文件改名别直接
Ctrl+Shift+FReplace All:先搜\bname\b定位文件,再手动打开每个文件用Ctrl+D或正则精替
真正容易被忽略的是:多光标一旦生成,所有输入操作(包括退格、Tab、回车)都会同步执行,但 Sublime 不提供“预览变更范围”功能。改完务必按 Esc 退出多光标,再扫一眼上下文——尤其注意解构赋值、类型定义、JSON 字段名这些静态分析工具才管的地方。











