Ctrl+Shift+L 是按行切选区而非拆数组,仅依据换行符和选区边界在每行末尾放置光标,不解析语法结构;多行格式是触发批量编辑的前提,需先换行再操作。

Ctrl+Shift+L 不是“拆数组”,而是“按行切选区”
Sublime 本身没有“解析数组”的能力,Ctrl+Shift+L 的作用非常明确:把当前**已选中的文本区域**,按换行符(\n)切片,每片末尾放一个光标。它不识别 JSON、括号或引号结构,只认换行和选区边界。
所以如果你有一段像 ["a", "b", "c"] 的字符串,直接全选后按 Ctrl+Shift+L,只会生成 1 个光标(因为整段是一行);必须先把它变成多行格式,才能触发批量编辑。
- 错误做法:全选
["a", "b", "c"]→ 按Ctrl+Shift+L→ 无反应或只出一个光标 - 正确路径:先用替换把逗号转成换行 → 再选中这些行 → 才能用
Ctrl+Shift+L拆光标 - 注意:Windows/Linux 用
Ctrl+Shift+L,macOS 是Cmd+Shift+L
把逗号分隔串转成多行再加引号,三步不能少
常见需求是把 a,b,c 转成 ["a", "b", "c"]。这不是一步操作,关键在顺序和正则精度:
- 第一步:把
,替换为换行 —— 查找,,替换为\n(别漏勾选右下角的.*正则模式,否则\n不生效) - 第二步:全选所有行 → 按
Ctrl+Shift+L→ 光标落在每行末尾 → 按Home移到行首 → 输入";再按End→ 输入" - 第三步:全选 →
Ctrl+J(Join Lines)→ 手动前后补[和];如果需要逗号+空格分隔,再全局把"\n"替换为", "
别跳过第一步的换行转换,否则 Ctrl+Shift+L 根本不会拆出多个光标。
处理带引号/空格/中文的原始数据,正则要更保守
原始数据如果是 用户ID, API_KEY, 2024Q3, 姓名,用简单 , 替换会出错 —— w+ 匹配不到短横线和中文,.* 又容易跨行吞掉上下文。
更稳的查找模式是:[^,\r\n]+(匹配任意非逗号、非换行的字符),配合「In Selection」使用:
- 先全选目标段落 →
Ctrl+H→ 查找[^,\r\n]+→ 勾选In Selection和.* - 替换为
"$0"($0表示整个匹配内容,比$1更安全) - 替换完自动换行?不需要 —— 这时每项已被引号包裹,再用
Ctrl+Shift+L已无意义;直接Ctrl+J合并,手动加方括号
特别注意:Replace in Files(Ctrl+Shift+H)完全不支持 $0 或 $1,跨文件操作必须先 Find in Files(Ctrl+Shift+F),再粘贴到新标签页处理。
列编辑(Alt+拖动)比多光标更适合对齐加符号
当你要给已有列表每行开头加 "、结尾加 ",,或者统一补 item. 前缀,Ctrl+Shift+L + Home/End 容易错位(尤其有缩进或空行时)。这时候用列选择更可靠:
- 按住
Alt(Windows/Linux)或Option(macOS),鼠标从第一行开头垂直拖到最后一行开头 → 松开 → 输入" - 同样方式选中所有行末尾位置(可先按
End确保光标在行尾,再Alt+Shift+↑向上扩展列选)→ 输入", - 列编辑不依赖换行切分,也不怕空行干扰,对齐精度高,适合结构化补全
真正容易被忽略的是:列编辑和 Ctrl+Shift+L 解决的是不同问题——前者重“位置对齐”,后者重“语义分片”。混用反而增加出错概率,该用哪个,看你的数据是否天然按行分隔。

















