不用插件,靠原生多光标+正则替换即可实现前缀/后缀批量添加,但需严格区分场景:加前缀须拆标后按Home定位,加后缀按End;正则用\s*$防空白干扰,操作前确认光标数与换行符状态。

直接说结论:不用插件,靠原生多光标 + 正则替换就能稳稳实现,但必须分清“加前缀”和“加后缀”两种场景,混用会错位或漏行。
Ctrl+Shift+L 拆光标后为什么光标全在行尾?
这是 Sublime 的默认行为:选中多行后按 Ctrl+Shift+L(Windows/Linux)或 Cmd+Shift+L(macOS),光标会落在每行末尾换行符前——它不是 bug,是设计。你得立刻用 Home 或 End 重新定位,否则输内容就全堆在行尾,不是你想要的“前缀”。
- 加前缀前,拆完光标必须立刻按
Home(Win/Linux)或Cmd+←(macOS);如果缩进不统一,Home停在缩进开头,此时先按Ctrl+Shift+P输入Align Indent再Home更可靠 - 加后缀前,拆完光标按
End(Win/Linux)或Cmd+→(macOS)比连按 → 更准,尤其当行尾有空格时 - 空行也会被
Ctrl+Shift+L拆出光标,位置在行首,输前缀后变成TODO_这类标记,需提前删空行或单独处理
正则替换加后缀时 $ 为啥有时不生效?
$ 在 Sublime 中匹配的是“行尾位置”,不是字符,但它对空白敏感:如果某行末尾有空格或制表符,$ 就停在它们前面,导致标记加在空白之后,而不是真正行尾。这不是正则写错了,是文本本身带干扰。
- 安全写法是把查找内容设为
\s*$(\s匹配空格/制表符,*表示零或多个),再勾选Trim whitespace on save或手动清理空格 - 文件最后一行没换行符时,
$仍能匹配它,但$0;会把分号插到文件末尾,而非“该行行尾”——操作前务必确认文件结尾是否含换行符(看状态栏右下角显示DOS、Unix还是Mac) - 给 HTML 标签批量闭合(如每行末加
),直接填$→即可,别用wrap_with_tag,它会把所有行塞进一对标签里
怎么避免标记加歪或只改第一行?
最常被忽略的其实是光标状态:Sublime 多光标编辑没有“锁定”机制,Esc、Ctrl+Z、甚至误触方向键都可能让部分光标消失,只剩一个在动。你以为在同步编辑,其实只在改第一行。
- 操作中途务必看状态栏右下角——出现
5 cursors这类提示才算真正生效;没提示就说明光标已丢失 - 列选择(
Alt+鼠标拖拽)适合对齐严格的代码块,但遇到缩进不一致的行会错位,不如Ctrl+Shift+L+ 定位可控 - 想加带变量的标记(如每行末加
/* line-123 */),得用正则捕获组:^(.+)$→$1 /* line-$1 */,前提是每行内容可作唯一标识
真正难的不是怎么加,而是加完立刻验证——尤其当标记用于后续自动化脚本识别时,一个空格、一个换行符错位,整条流水线就卡住。别跳过检查这步。

















