sublime多行编辑核心是ctrl+click/cmd+click;ctrl+shift+l需先选含换行符的文本;ctrl+d默认全词匹配且不跳过注释;列选择需shift+alt拖动,与多光标本质不同。

Ctrl+Click(Windows/Linux)或 Cmd+Click(macOS)是 Sublime 实现多行编辑最直接、最可控的方式——它不依赖文本内容,也不需要预选中,点哪光标就加在哪。其他所谓“开启多行模式”的说法都是误导。
为什么 Ctrl+Shift+L 没反应或只在第一行生效
Ctrl+Shift+L 不是“给当前行加光标”,而是把「已有选区」按换行符切开,每行末尾生成一个光标。
- 没选中任何文字就按它,它会静默跳过;选区里只有一行,它就只生成一个光标
- 选区必须含换行符(
\n或\r\n),纯空格或制表符不会触发拆分 - 如果某行末尾有空格或
\t,光标会落在空格后,一输内容就把缩进顶乱 - 想让光标统一落到行首?拆完立刻按
Home(Windows/Linux)或Cmd+←(macOS)
Ctrl+D 为什么跳过了目标词或误中注释
Ctrl+D 默认严格匹配「完整单词、区分大小写、不跨行」,且不跳过字符串或注释里的相同文本。
- 光标停在
user_id中间就按Ctrl+D,可能只取到_id,后续全错 - JS 里
// data is invalid中的data也会被选中——这不是 bug,是默认行为 - 看到不该选的,立刻按
Ctrl+U撤回上一次匹配 - 要跳过第 2 个匹配项(比如数据库字段名),先按
Ctrl+K,再按Ctrl+D - 大小写不敏感?打开
Ctrl+H→ 点左下角Aa图标关掉Match Case
列选择(Alt+拖动)和多光标根本不是一回事
列选择是矩形块选,不是光标叠加;它适合对齐结构化数据,但无法智能跳过空行或识别语义边界。
- 必须按住
Shift+Alt(Windows/Linux)或Shift+Option(macOS)再拖动,单按Alt无效 - Tab 缩进宽度不一致(比如混了空格和制表符)会导致视觉错位,列选歪斜
- 文件启用了
translate_tabs_to_spaces但未重载,旧 Tab 字符仍存在,列选会在 Tab 边界卡住 - 行尾有不可见字符(如 BOM、零宽空格),列选会提前终止
- 验证是否真进列模式:打字时只有矩形区域响应,整行被覆盖说明只是普通选区
插件辅助宏录制不是万能解,反而容易掩盖操作逻辑
Sublime 原生多光标机制已足够应对绝大多数批量编辑场景。插件如 RegReplace 或 MacroMaker 只在重复固定步骤(如“删行首 4 空格 + 行尾加 ;”)且需频繁复用时才值得引入。
- 宏无法处理动态变化的上下文(比如每行参数个数不同),一录即废
- 依赖插件意味着配置迁移成本:新机器装插件、同步 key binding、调试冲突
- 真正卡点永远是「怎么精准生成那几个光标」,而不是「怎么录下来」
- 建议优先练熟
Ctrl+Click、Ctrl+Shift+L、Ctrl+D的组合节奏,比依赖宏更稳定
Ctrl+Shift+L,或开着软换行去 Ctrl+Click,结果就是光标加错位置——这种细节,没人替你盯。











