Sublime多光标加引号前须确认光标在物理行首(Ctrl+Home/Cmd+Home),行尾加右引号前需Trim尾部空白,批量处理优先用正则^$(.+)$→"$1",禁用Alt拖拽或全选敲引号。

多光标加引号前,必须确认光标真正在行首
Sublime 的 Home 键默认停在“缩进后第一个非空字符前”,不是物理行首。比如一行是 user_id(4个空格),按一次 Home 光标停在 u 前;再按一次,或直接用 Ctrl+Home(Windows)/Cmd+Home(macOS),才能落到第 0 列。否则输 " 会变成 " user_id 或 " user_id,破坏格式甚至引发语法错误。
操作顺序必须是:
- 先选中目标行(鼠标拖选 /
Ctrl+L连续选 /Ctrl+Shift+↓扩展) - 再按
Ctrl+Shift+L(Win/Linux)或Cmd+Shift+L(macOS)拆出多光标 - 统一按
←(左箭头)两次,或直接用Ctrl+Home/Cmd+Home - 此时输入
",所有引号才紧贴内容开头
行尾加右引号时,空格会导致引号插错位置
按 End(Win/Linux)或 Cmd+→(macOS)跳到行尾后,如果某行末尾有空格或 Tab,光标会停在空白处,再输 " 就变成 item " 而非 "item"。这种错位肉眼难察觉,但 JSON、Python 元组或 JS 数组会直接报错。
稳妥做法是:
- 加左引号前,先执行
Ctrl+Shift+P→ 输入Trim Trailing White Space清理尾部空白 - 加右引号时,优先用
End/Cmd+→,比连按→更稳 - 若某行含注释(如
user_id // primary key)或多字段(如name, age),多光标不适用,必须切正则
正则替换 ^(.+)$ 是最稳的批量方案
适用于 CSV 字段、JSON key、数组元素等结构清晰的文本,几千行也秒出结果,且不依赖光标位置、不挑缩进。关键点在于:^ 和 $ 必须成对出现,且右下角的 .*(正则模式)必须勾选,否则 ^ 被当字面量处理,替换无效。
标准操作:
- 打开替换面板:
Ctrl+H(Win/Linux)或Cmd+Alt+F(macOS) - 勾选左下角
.*按钮 -
Find What填^(.+)$ -
Replace With填"$1" - 点击
Replace All—— 空行自动跳过
注意:^.+ 或 ^.* 单独写会跨行匹配;^".+"$ 会删掉原内容只留引号;若要包裹空行,改用 ^.*$ → "$0",但得确认业务是否需要。
别用列选择(Alt+拖拽)或全选后敲引号
Alt+拖拽 是像素级列选择,不是按行逻辑对齐。只要某行长短不一,或混用 Tab/空格,引号就会插进缩进中间、切开单词,比如 user_id 变成 "user_ 和 id"。而 Ctrl+A 后按 ",只是块选中,Sublime 只允许一个主光标响应输入,其余高亮只是视觉反馈——结果只有第一行被改。
真正容易被忽略的是缩进层级差异:同一组代码里,有的行是 2 空格缩进,有的是 4 空格或 Tab,Home 在不同行停的位置不同,必须二次确认光标是否真在最左端。这不是 UI 假象,是 Sublime 对“行首”的严格定义。

















