Sublime中处理数组需精准选中换行符:用Ctrl+L多次选中整行(含末尾\n),再按Ctrl+Shift+L实现多光标;双击字段名后Ctrl+D确保准确匹配;列选择需关闭软换行并使用等宽字体;复杂结构用正则Find All定位。

Ctrl+Shift+L 拆行光标前,必须选中含换行符的数组块
Sublime 不会自动识别“数组”语法,Ctrl+Shift+L 只认换行符(\n 或 \r\n),不认括号或逗号。你看到的 JS/Python 数组,对 Sublime 来说只是普通多行文本。
常见错误:用鼠标从第一行 [ 拖到最后一行 ],但松手时没覆盖每行末尾的换行符——结果 Ctrl+Shift+L 只在第一行生成光标。
- 安全做法:把光标放在数组第一行任意位置 → 按
Ctrl+L选中该行 → 继续按Ctrl+L多次,直到所有数组元素行都被整行选中(状态栏显示 “x lines selected”) - 确认选区含换行符:选中后看最后一行末尾是否高亮(含不可见的
\n),不是只亮到文字结尾 - 之后按
Ctrl+Shift+L,每个元素行末尾都会生成一个光标,可统一加逗号、删空格、补引号等
用 Ctrl+D 改数组字段名时,双击选中比单击光标更可靠
Ctrl+D 默认匹配“整个单词”,但数组里常有 user_id、user_name 这类带下划线的字段——如果光标只停在 user 上,Ctrl+D 会跳过所有带下划线的变体。
真正起效的操作是:先用鼠标**双击选中完整字段名**(如 user_id),再按 Ctrl+D,它才严格按这个字符串去匹配下一个 user_id,不会误吞 user_name 或漏掉大小写不同的 UserId。
- 如果某次
Ctrl+D选中了不该改的注释内容,按Ctrl+K再按Ctrl+D跳过当前项 - 想反向往前找匹配项?用
Ctrl+K,Ctrl+Shift+D - 全量替换所有字段?别连按
Ctrl+D,直接用Alt+F3(Windows/Linux)或Ctrl+Cmd+G(macOS)一键全选
列选择(Alt+Shift+拖)适合对齐修改数组值,但依赖等宽字体和无软换行
当你想给数组每一项的值统一加引号、补默认值或对齐冒号(如 JSON 风格),Alt+Shift+鼠标拖拽 比 Ctrl+Shift+L 更精准——它能拉出矩形选区,强制光标落在同一列。
但容易失效的点很具体:
- 系统快捷键冲突:Windows 的
Alt+Shift可能触发输入法切换,建议临时切英文输入法再操作 - 软换行开启时,视觉上对齐的列实际物理位置错乱,务必先关掉:
View → Word Wrap - 非等宽字体(如微软雅黑)下,字母和数字宽度不一,拖出来的列会偏移;推荐用 Consolas / Fira Code 等等宽字体
- 拖完后若无法输入,检查是否还处于列选择模式(状态栏显示 “Column Selection”),按
Esc退出即可
正则 + Find All 是处理不规则数组结构的兜底方案
遇到嵌套数组、混行缩进、或字段位置不固定(如有的在第 2 列,有的在第 4 列),Ctrl+D 和列选择都会失效。这时得靠正则定位。
例如:想给所有 value: 后面的值加引号,不管它在哪一行哪一列:
Ctrl+H → 输入查找: value:\s*(\S+) → 勾选 .*(正则)和 Aa(大小写敏感)→ 点 Find All
所有匹配项会被高亮,且每个匹配开头自动加光标。之后输入 "$1" 就能批量替换。
- Find All 后没光标?检查是否点了 Replace All 而非 Find All;或者正则写错了导致零匹配
- 匹配到了不该改的注释?在正则里加负向先行断言,比如
(?<!//\s*)value:\s*(\S+) - 文件有混合换行符(
\r\n和\n混用)?先Ctrl+Shift+P → Set Line Endings → Unix统一再试
Esc、方向键、Ctrl+X 或切 Tab,所有额外光标就清零。编辑数组这种结构化内容,宁可多按两次 Ctrl+L 确保选区干净,也别赌自己能记住光标还在哪儿。

















