ctrl+shift+l 是 sublime text 中唯一原生可靠的多行拆分方式,但仅按换行符切分选区,要求选区必须包含 \n 或 \r\n,且状态栏显示多行被选中,否则无响应。

Ctrl+Shift+L 是唯一可靠、原生、无需插件的多行拆分方式,但它只认换行符,不认语义或分隔符——选区里没有 \n 或 \r\n,它就完全不响应。
为什么按了 Ctrl+Shift+L 没反应?
最常被忽略的前提是:Sublime 不是在“给当前光标所在行加光标”,而是在“把选区按换行符切片”。只要状态栏显示 1 line selected,哪怕你拖到了第二行开头,它也拒绝执行。
- 鼠标拖选时,必须真正覆盖换行符——看到第二行整行高亮才算安全;松手前可按
→往右多挪一格确认 - 用
Ctrl+L(选中整行)连续点选多行,再按Ctrl+Shift+L,100% 生效 - 右下角语言模式显示
Plain Text时,某些混合换行符(如\r\n\r\n)可能被误判为单行;点语言名 → 切成Text或对应语法(如JSON)再试
Ctrl+Shift+L 后光标位置不对齐怎么办?
它严格复刻你拖选的起始列:你在第 3 列开始拖,所有光标就落在各自行的第 3 列,不管那列是不是空格、缩进或不可见字符。
- 想统一到行首?拆分前先按
Home或Ctrl+Shift+←把选区缩到行首,再按Ctrl+Shift+L - 想统一到行尾?拆分前按
End或Ctrl+Shift+→,注意会包含行尾空格和换行符 - 空行、Tab/空格混用、BOM 或零宽空格会导致错位;用
Ctrl+H正则搜索^\s*$清空行,再用Convert Indentation to Spaces统一缩进
单行内逗号/竖线/空格分隔的数据怎么拆?
Ctrl+Shift+L 对单行无效——它不是分词器,不会解析内容。强行选中 a,b,c,d 按它,只会生成一个光标。
- 先构造换行:选中目标文本 →
Ctrl+H→ 勾选「正则表达式」→ 查找,\s*,替换为\n(Windows)或\r\n(旧项目兼容)→ 全选新行 → 再按Ctrl+Shift+L - 若字段含双引号(如 CSV),别硬刚;装 Package Control 的
CSV插件,直接调用CSV: Split into Lines命令,能跳过引号内分隔符 - 想在每行等号左侧加前缀?先正则查找
^([^=]*?)=,勾选Find All,再按Ctrl+Shift+L,光标就落在所有等号前
拆完粘贴只贴了一行?这不是 bug
Sublime 的 Ctrl+V 默认行为是:无论多少个光标,只取剪贴板第一行内容插入每个位置。这不是故障,是设计。
- 想每行粘贴不同内容?得用列选择(
Alt+拖拽)手动对齐后,再逐段Ctrl+V - 想批量补相同前缀(如
//)?直接输入即可,所有光标同步生效 - 想删掉每行末尾换行符?先确保
Ctrl+Shift+L后光标都在行尾(即选区含\n),再按Delete
真正卡住人的从来不是快捷键记不住,而是选区是否含换行符、起始列是否干净、语言模式是否识别正确——这三处出问题,Ctrl+Shift+L 就等于没按。











