敲`只包裹第一行是因为Sublime的auto-pair仅响应主光标位置,多行选中时其余行为视觉高亮而非编辑目标;正确做法是多光标手动输入或正则替换。

直接选中多行后敲 `,只会包裹第一行——因为 Sublime 默认只对“显式选中”的文本生效,其余行只是高亮,不是编辑目标。
为什么敲 ` 只加了第一行的反引号?
Sublime 的自动包裹(auto-pair)机制只响应「当前光标所在位置的选区」。鼠标拖选多行或 Ctrl+A 后,实际只有一个主光标(在首行),其余行只是视觉选中,不参与符号包裹。你敲 `,它只在第一个光标处插入 ` 和配对的 `,其余行完全没被触达。
- 常见错误现象:
foo\nbar\nbaz全选后敲`→ 变成`foo`\nbar\nbaz - 列选择(
Alt+拖拽)同样无效:它生成的是垂直列光标,但敲`仍只在第一个列位置触发包裹,其余列光标被忽略 - Emmet 的
Ctrl+Shift+G不支持反引号包裹,该命令只认 HTML/CSS 缩写,对`无响应
正确做法:多光标 + 手动输入 `(推荐 ≤100 行)
这是最可控、不依赖插件、能精准控制每行起止位置的方式。关键在于让每个光标都落在「真正行首」和「真正行尾」。
- 先选中目标行(鼠标拖选 /
Ctrl+L连续选 /Ctrl+Shift+↓扩展) - 按
Ctrl+Shift+L(Win/Linux)或Cmd+Shift+L(macOS)拆出每行一个光标 - 统一移光标到行首:
←按两次(比Home更可靠,避开缩进干扰),或用Ctrl+Home/Cmd+Home - 输入
`,所有光标前立即加上左反引号 - 再统一移光标到行尾:
End(Win/Linux)或Cmd+→(macOS);若行尾有空格,End可能停在空格上,此时连按两次→或先执行Ctrl+Shift+P→Trim Trailing White Space - 输入
`,所有光标后立刻加上右反引号
大批量或带条件时,用正则替换(推荐 ≥50 行或含空行/注释)
正则不依赖光标位置,跳过空行、兼容缩进、可排除已有反引号,适合处理配置项、Markdown 代码块、JS 模板字符串变量等场景。
- 打开替换面板:
Ctrl+H(Win/Linux)或Cmd+Alt+F(macOS) - 勾选左下角
.*(启用正则模式) - 填入:
Find What:^(.+)$
Replace With:`$1`
点Replace All - 说明:
^和$必须成对,否则.+可能跨行匹配;.+天然跳过空行;若需包含空行,改用^.*$→`` - 想跳过已带反引号的行?用负向先行断言:
^(?![`]).+$→`$0`(注意$0引用整行,不是$1)
容易被忽略的细节
反引号在 JS 模板字符串中是语法符号,批量包裹后若原内容含 ${} 或未转义的 `,会直接破坏语法;而 Sublime 不做上下文校验,它只机械替换。所以操作前务必确认目标文本是纯标识符或安全字符串——比如从 CSV 提取的字段名、JSON key 列表、或 Markdown 中待转为行内代码的单词。别对含变量插值或嵌套反引号的代码块直接套用。

















