sublime多行插入符号核心是多光标精准定位:ctrl+shift+l默认置光标于行尾(换行符前),需按home/ctrl+home跳至行首;正则替换须开启.*按钮,^/$才生效,否则被当字面量处理。

Sublime 的多行批量插入符号,核心不是“一键插入”,而是靠多光标精准落位后输入——Ctrl+Shift+L 生成光标后,Home 或 End 才决定插在哪;正则替换虽快,但漏点 .* 按钮就全失效。
为什么按了 Ctrl+Shift+L 光标却在行尾?
这是最常卡住的起点:Ctrl+Shift+L 默认把光标放在每行换行符前,也就是物理行尾。它不关心你要加前缀还是后缀,只负责“拆选区”。你一激动直接输 //,结果所有行末尾都多了 //,而不是开头。
- 正确节奏:选中目标行 →
Ctrl+Shift+L→ 立刻按Home(Windows/Linux)或Cmd+←(macOS)→ 输入符号 - 缩进干扰时,
Home可能只跳到缩进起点(如 4 个空格后),再按一次才到第 0 列;更稳用Ctrl+Home(Win)或Cmd+Home(Mac) - 如果状态栏没显示 “x cursors”,说明
Ctrl+Shift+L没生效——检查是否拖选时没覆盖换行符,或开了 Vintage 模式(该快捷键被重映射)
^ 和 $ 正则替换必须点亮 .* 按钮
很多人输完 ^ 就点全部替换,结果毫无反应,其实只是 .* 按钮没点亮。此时 ^ 被当普通字符处理,替换出来全是字面量 ^prefix。
- 加行首符号:查找填
^,替换填你要的内容(如//或-),务必先点右下角.*图标 - 加行尾符号:查找填
$,替换填;或",";若某行末尾有空格,$会停在空格前,改用\s*$更稳妥 - 跳过空行:查
^(?=\S);跳过已有//的行:查^(?!// )
列选择(Alt+拖拽)只适合视觉对齐的文本
它本质是矩形框选,不认逻辑行首,只认屏幕坐标。一旦缩进不一致(比如一行用 Tab、另一行用 4 个空格),加出来的符号就会错位。
- 适用场景:CSV 表头、日志时间戳块、已统一缩进的 console.log 块
- 操作前建议:执行
Ctrl+Shift+P→Indentation: Convert to Spaces统一缩进,再打开View → Draw White Space看清空白符 - 别用于 Markdown 列表或代码注释——这些必须靠
Ctrl+Shift+L+Home或正则^
行尾插入分号/逗号最容易踩的三个坑
看似简单,但空格、换行符、文件结尾状态都会导致错位或漏行。
-
End键在 Sublime 中默认跳到“可视行尾”,不是物理行尾;若行尾有空格或制表符,它会停在空白处——连按两次→或改用Ctrl+→(Win)/Cmd+→(Mac)更可靠 - 正则替换用
$→;时,若文件最后一行没有换行符,$仍会匹配它,;就插在文件末尾而非“行尾” - 混用
\r\n和\n会导致部分行漏匹配;操作前先Ctrl+Shift+P→Set Line Endings: Unix统一为 LF
真正麻烦的从来不是“怎么插”,而是插之前有没有意识到:光标位置受缩进、换行符、编码、插件三重干扰;而正则模式那个小小的 .* 按钮,就是开关命门。











