sublime用正则批量在每行开头加文本:替换面板勾选正则,查找填^,替换填前缀(如//);末尾同理用$加后缀(如;);注意勿用^.或^.*以免删除原内容,混合换行符或编码问题会导致失效。

Sublime 怎么用正则批量在每行开头加文本
直接用 Ctrl+H(Windows/Linux)或 Cmd+H(macOS)打开替换面板,勾选 .*(正则模式),查找框填 ^,替换框填你要加的前缀,比如 // 。注意:^ 匹配的是“行首位置”,不是字符,所以不会吞掉原有内容。
常见错误是填了 ^. 或 ^.* 再替换——这会把整行吃掉,只留下你写的前缀。真正要保留原行,必须只匹配位置,不捕获内容。
- 如果只想处理选中的多行,先选中再操作,
^依然有效 - Mac 用户注意:默认
Cmd+H是系统快捷键,可能被拦截,可改用Cmd+Alt+F呼出替换面板 - 跨平台兼容性没问题,但 Sublime Text 3 和 4 的正则引擎一致,无需额外适配
Sublime 怎么在每行末尾加文本(比如分号或引号)
同样进替换面板,正则模式下,查找填 $,替换填你要加的后缀,比如 ; 或 "。和 ^ 一样,$ 匹配的是“行尾位置”,不是换行符本身——所以它会插在换行符前面,不影响换行结构。
容易踩的坑:有人填 \n 替换,结果所有行被连成一行;还有人用 $ 却忘了关“匹配换行符”选项(\n 按钮),导致空行不生效——其实空行也有行尾,$ 默认能匹配,只要没勾选“匹配换行符”就 OK。
- 如果某行结尾已有空格或制表符,
$仍会插在它们前面;想插在空白之后,得用\s*$查找,替换为你的后缀$0($0表示原匹配内容) - 批量加右括号或引号时,别漏掉转义:比如加双引号,替换栏直接写
"就行,不用写\"(正则里"不特殊)
Sublime 批量加前后缀时为什么有些行没生效
大概率是文件用了混合换行符(比如部分行是 \r\n,部分是 \n),或者有 Unicode BOM、不可见控制字符干扰了 ^ 和 $ 的行为。Sublime 的正则默认按“逻辑行”理解 ^/$,但遇到异常编码或损坏行结束符时,边界判断会失效。
- 先执行
File → Save with Encoding → UTF-8统一编码 - 再用
Ctrl+Shift+P调出命令面板,搜Set Line Endings,统一设为Unix (LF)或Windows (CRLF) - 检查是否误开了
Match Whole Word或Case Sensitive——这两个和^/$无关,但会干扰其他场景,顺手关掉更稳妥
比手动替换更快的替代方案:列编辑 + 多光标
如果只是几十行、且结构简单,用鼠标拖出列选区(Alt+鼠标拖拽 / Option+鼠标拖拽)然后直接输入,比开正则还快。配合多光标(Ctrl+Click 或 Ctrl+Shift+L 拆行)也能快速在每行开头/结尾插入内容。
但要注意:列编辑对不齐的行很敏感,比如缩进用空格和 Tab 混用,拖出来的列会歪;而正则不依赖视觉对齐,更可靠。所以“结构规整→列编辑”,“格式混乱→正则”是更实际的分工。
真正难的不是怎么加,而是加完要不要验证——比如加了 console.log( 开头,得确认每行后面都补了 ),这种闭环动作没人帮你做,得自己扫一眼。











