选中一段文本后直接按"或'即可自动包裹,前提是普通选中、语法支持且选区不紧邻字母/数字等“不安全”字符;否则需用多光标或正则替换:多光标适用于≤50行干净数据,正则替换^(.+)$→"$1"最稳,适合批量处理结构化文本。

选中一段文本后直接按 " 或 ' 就能自动包裹——前提是选区是普通选中、语法支持、前后不紧邻字母/数字等“不安全”字符。这是 Sublime 默认功能,不是插件行为,但很多人按了没反应,其实是触发条件没满足。
为什么按引号没反应?检查这三个硬性条件
Sublime 的包裹逻辑有明确守门规则,缺一不可:
- 选区必须是「普通选中」:不能是行选中(
Ctrl+L)、列选中(Alt+拖拽)或空光标状态;鼠标拖选或Shift+方向键生成的选区才有效 - 当前语法不能禁用配对:JSON 文件默认不补右引号,因为
"是合法内容;切到Plain Text(Ctrl+Shift+P→Set Syntax: Plain Text)再试 - 选区边界不能紧贴字母/数字/括号:比如在
sayHello()中选中Hello,前后是H和(,Sublime 判定为“可能破坏语法”,拒绝包裹;手动删掉邻接字符再选一次即可
多光标批量加引号:适合 ≤50 行干净数据
比正则更直观,但对结构敏感,翻车点集中在光标位置和空白字符上:
- 先用
Ctrl+L或鼠标拖选目标行,再按Ctrl+Shift+L(Win/Linux)或Cmd+Shift+L(macOS)拆出每行一个光标 - 所有光标必须落在第 0 列:按一次
Home只停在缩进起点,再按一次或直接用Ctrl+Home(Win)/Cmd+Home(macOS) - 输
"后,按End(Win)或Cmd+→(macOS)跳到行尾,再输";若行尾有空格,End会停在空格上,导致变成"item "——务必提前执行Ctrl+Shift+P→Trim Trailing White Space
正则替换加引号:真正稳、快、可扩展的方案
适用于 CSV 字段、JSON key、数组元素等结构化文本,几千行也秒出结果,且不依赖光标位置:
- 打开替换面板:
Ctrl+H(Win/Linux)或Cmd+Alt+F(macOS) - 勾选左下角
.*(启用正则模式),否则^和$当字面量处理,无匹配 - 非空行加双引号:
Find What填^(.+)$,Replace With填"$1";空行自动跳过 - 要连空行一起包成
"",改用^.*$→"$0";但需确认业务是否允许空字符串 - 处理 JSON key 并清理旧引号:
Find填(["']?)([a-zA-Z_][a-zA-Z0-9_]*)["']?\s*:,Replace填"$2":
真正卡住效率的,往往不是不会操作,而是没分清场景:一次性整理,多光标够用;后续反复跑,值得花 5 分钟配个正则或自定义快捷键。另外,混合换行符(\r\n 和 \n)会导致部分行漏匹配,替换前先 Ctrl+Shift+P → Set Line Endings: Unix 更稳妥。











