Sublime中Ctrl+Shift+L批量编辑JSON需人工圈定语义块(如对象或数组项)再操作,否则因只识别换行符、不解析语法结构而错位;加符号须分步、校准光标位置,并用等宽字体保障列选择准确。

Ctrl+Shift+L 拆光标前必须选对东西
直接全选整个 JSON 文件再按 Ctrl+Shift+L,结果往往只在第一行末尾加一个光标——因为 Sublime 是按换行符切选区,不是按语法结构切。它根本不认识 { 和 },只认 \n。
实操建议:
- 想批量处理数组元素:先用鼠标或
Ctrl+F定位到[,拖选从[到]的完整块(含换行),再按Ctrl+Shift+L - 想改所有键名:用正则
"[^"]*":查找,勾选In Selection,点Find All,高亮后立刻按Ctrl+Shift+L - 如果光标歪了(比如落在缩进空格里):按一次
Home把所有光标拉到行首(含空格),再按一次跳过缩进,落到第一个非空白字符上
加引号、逗号、冒号这些符号必须分步来
JSON 对格式敏感,Ctrl+Shift+L 后一次性输 " + ; + , 极易错位。比如某行末尾有空格,光标停在空格后,输入的逗号就跑到空格前面去了。
常见错误现象:"name": "foo" 变成 "name": "foo", (多一个空格),或更糟:"name": "foo" ,(逗号没对齐,校验失败)。
正确做法:
- 加左引号前:确保所有光标都在值开头,用
Ctrl+Right或Shift+Ctrl+Right精准跳到:后第一个非空字符 - 加右引号+逗号:先按
End到行尾,再输入",;别用连按→,容易卡在行尾空格或制表符上 - 如果某行是最后一项(不该加逗号):提前用
Ctrl+K, Ctrl+D跳过它,或最后手动删掉
别信 Ctrl+J 合并 JSON 数组
Ctrl+J 是纯文本拼接,不解析 JSON 结构。对 ["a",\n"b"] 它能凑合出 ["a","b"],但只要中间夹着注释、空行、或字符串里自带换行(如 "log": "line1\nline2"),结果就直接非法。
真正安全的做法是:
- 手动选中整个数组块(从
[到]) - 打开替换面板
Ctrl+H,启用正则模式 - 查找
\s*\n\s*,替换为(一个空格)——先压平换行,保留空格防粘连 - 再查
,\s+,替换为,(逗号+空格),统一分隔符
列选择(Alt+拖动)只在等宽字体下可靠
列编辑不是“视觉对齐”,而是“按列号硬框”。如果用了非等宽字体(比如系统默认的 Segoe UI),同样一行上的 "id" 和 "message" 字段,光标会错开——因为字母宽度不同。
必须做到:
- 设置字体为
Consolas、Fira Code或JetBrains Mono(在Preferences → Settings里改"font_face") - 列选时,光标起始位置必须严格落在目标字段第一个字符上(比如
"msg"的m),不能偏左偏右 - 列选后不能继续用
Ctrl+D;必须先按Esc退出列选状态,否则后续操作会混乱
复杂点在于:JSON 的嵌套层级和字符串内换行会让所有“全自动”操作失效。最稳的批量编辑路径永远是——先人工圈定语义块(比如一个对象、一个数组项),再用 Ctrl+Shift+L 拆,最后分步敲符号。任何想跳过这三步的快捷方式,大概率在第 50 行开始出错。











