最稳的批量加引号/逗号方式是正则替换;它不依赖光标位置、跳过空行、几千行瞬时完成,且避免缩进或尾部空格导致错位,适用于json、csv、python等格式标准化。

最稳的批量加引号/逗号方式不是多光标,而是正则替换;它不依赖光标位置、跳过空行、几千行瞬时完成,且不会因缩进或尾部空格错位。
用 ^(.+)$ 给非空行加双引号
这是处理 JSON 数组元素、CSV 字段、Python 列表项的标准起点。它只匹配含内容的行,天然忽略空行和纯空白行。
-
^(.+)$中^和$必须配对启用,否则可能跨行匹配(尤其关闭Wrap around时更危险) -
.+不匹配空字符串,所以空行自动被跳过;若真要包裹空行,得换用^.*$→"$0",但后续需手动清理多余"" - 替换前务必勾选替换面板左下角的
.*(正则模式),否则^被当字面量,替换完全无效 - 原始文本含
\r\n混合换行?先执行Ctrl+Shift+P→Set Line Endings: Unix,避免部分行漏匹配
用 $ 在行尾加逗号或分号
Sublime 没有“批量行尾插入”命令,$ 是唯一可靠锚点——它匹配的是“行尾位置”,不是换行符本身,所以不会破坏结构。
- 查找填
$,替换填,或;,就能在每行末尾追加字符 - 但注意:如果某行末尾有空格或制表符,
$仍会匹配到换行前的位置,导致item ,这种错误;稳妥做法是先用\s*$→ 空,清理尾部空白,再执行$→, - 文件最后一行没换行符?
$依然能匹配它,,会被插在文件末尾——这不是 bug,是预期行为,需人工确认结尾状态 - 别写成
\n$或\r\n$,Sublime 正则不支持这种写法,$本身就已涵盖所有换行风格的行尾
给 JSON key 统一加引号并清理旧格式
这不是简单包裹,而是修复已有不规范写法(如 id:、"name":、'email':),输出标准的 "id":。
- 查找填
(\"?)([a-zA-Z_][a-zA-Z0-9_]*)(\"?)\s*:,其中$2是纯标识符捕获组,$1和$3是可选的原有引号,替换时直接丢弃 -
\s*:确保匹配冒号前任意空白,但必须把:放在最后,写成:\s*会导致匹配失败 - 这个正则会跳过
123abc:或foo bar:,因为它只捕获合法标识符,避免误改非法 key - 若某行是
"id": "value",该正则只改 key 部分,值部分不受影响
真正容易被忽略的点是:正则快,但 ^ 和 $ 的行为高度依赖是否启用正则模式,以及换行符是否统一;多光标看着快,但只要有一行带注释、空格或缩进不齐,结果就错位——而这种错位往往肉眼难查,直到运行时报语法错误才暴露。











