Ctrl+Shift+L仅对含换行符的选区生效;正确操作是先用Ctrl+L逐行选中目标SQL语句,再执行该快捷键实现多光标编辑。

Ctrl+Shift+L 拆光标前必须选中含换行符的文本
直接按 Ctrl+Shift+L 没反应?不是快捷键失效,而是 Sublime 只对「已有选区」生效,且该选区必须包含换行符。空着光标乱按、只双击一个词、或只选中纯空行,都会静默失败。
正确操作路径:
- 用
Ctrl+L选中第一行(光标在任意位置即可) - 连按
Ctrl+L向下追加行,直到覆盖所有目标 SQL 插入语句 - 再按
Ctrl+Shift+L—— 此时每行末尾出现独立光标 - 若要统一加逗号或分号,直接输入
,或;;若要加前缀(如--注释),先按Home跳到行首再输
给 INSERT VALUES 部分批量加引号或补 NULL
原始数据常是:VALUES (1, abc, 2024-01-01),但 abc 和日期缺引号;或者某些字段需统一填 NULL。手动改易漏、错位。
安全做法是分两步处理:
- 先用列选模式(
Alt+ 鼠标纵向拖拽)框住所有待加引号的字段值区域(避开括号和逗号) - 松手后输入
',再按End→ 输入',完成单侧包围 - 若某列为固定
NULL,可先用Ctrl+D逐个选中对应位置的占位符(如???或空格),再统一替换成NULL - 注意:列选前确保各行字段对齐,否则拖拽会错行;可用
Ctrl+Shift+P→Align on Last Non-Whitespace Character预对齐
正则替换补全 INSERT 结构比手拼更稳
从 Excel 复制一列 ID 或 name,想转成完整 INSERT INTO t (col) VALUES ('a'), ('b'), ...,靠多光标效率低且易漏括号。
推荐正则三步走(确保无空行):
-
Ctrl+H打开替换面板,勾选.*(正则模式) - 查找:
^(.+)$→ 替换:('$$1$$')(给每行套引号+括号) - 查找:
\r?\n→ 替换:,(换行变逗号加空格) - 最后手动在开头加
INSERT INTO t (col) VALUES,结尾补;,删掉末尾多余逗号
⚠️ 注意:如果原始值含单引号(如 O'Connor),得先用 Ctrl+H 把 ' 替换为 ''(SQL 标准转义),否则插入会报错。
大文件里多行编辑卡顿或光标消失的临时解法
打开超 50MB 的迁移 SQL 脚本时,Ctrl+Shift+L 响应慢、光标突然只剩一个,甚至 Sublime 假死——这不是你操作错,是内存映射限制。
不用重装或调配置,立刻见效的应对方式:
- 关闭所有插件:
Ctrl+Shift+P→Package Control: Disable Package,重点关GitGutter、BracketHighlighter - 删掉文件顶部可能存在的 BOM 或不可见控制字符(
Ctrl+Shift+P→Convert to UTF-8) - 避免一次性选中全部内容:分段处理,比如每次只选 500 行,处理完再滚屏继续
- 真要全局改表名或字段?别硬刚多光标,改用
Ctrl+Shift+H跨文件查找,配合(? 这类锚定正则,更可靠
最常被忽略的一点:多光标编辑本质是“所见即所得”的文本操作,它不理解 SQL 语法。你在函数参数里批量加引号,它不管里面是不是字符串;你在注释里误选了 -- 后的内容,它照改不误。确认范围永远比加速操作更重要。

















