最稳的批量加前缀/后缀方法是正则替换:启用 .* 按钮后,用 ^ 匹配行首加前缀,$ 匹配行尾加后缀;多光标默认落行尾,Home 仅移首行光标,列选择易受 Tab 宽度影响,Text Pastry 插件支持差异化插入。

Ctrl+Shift+L 后光标默认在行尾,不是行首
选中多行按 Ctrl+Shift+L(Windows/Linux)或 Cmd+Shift+L(macOS),所有光标会落在每行换行符前——也就是物理行尾。此时直接输入,内容会加在末尾,比如想加 //,结果变成 console.log(); //。
必须立刻补按 Home(Win/Linux)或 Cmd+←(macOS)让光标跳到行首。但要注意:
- Home 默认停在“缩进起点”,不是绝对行首;若某行是
user_id,按一次 Home 光标停在第 4 列,再按一次才到第 0 列 - 更稳的做法是连按两次
←,或直接用Ctrl+Home(Win)/Cmd+Home(macOS)一步到位 - 如果先
Ctrl+A全选再按Ctrl+Shift+L,所有光标仍卡在各行末尾,且Home只移动第一行光标,其余不动
正则替换 ^ 和 $ 是最稳的批量加法,但 .* 按钮必须点开
打开 Ctrl+H(Win/Linux)或 Cmd+H(macOS),不点右下角 .* 按钮,^ 就是字面量脱字符,不会匹配行首位置。
安全操作链:
- 启用正则:务必点击右下角
.*按钮 - 加前缀:查找栏填
^,替换栏填你要的内容(如//或") - 加后缀:查找栏填
$,替换栏填后缀(如;或") - 避免误删:别填
^.+或^.*,它们会吞掉整行内容
$ 匹配的是换行符前的位置,所以不会破坏换行结构;但如果某行末尾有空格或 Tab,$ 仍插在它们前面。想紧贴非空白内容?查 \s*$,替换成你的后缀$0。
列选择(Alt+拖拽)只适合缩进严格对齐的文本
按住 Alt(Win/Linux)或 Option(macOS),从第一行真正行首垂直拖到最后一行行首,松手后光标落在同一列。它不依赖逻辑行首,而是纯视觉定位。
但这个方法极易翻车:
- Tab 宽度不一致时(比如设置为 2 或 4),拖拽错位,光标偏移一两列
- 混用空格和 Tab 会导致部分行光标落在缩进中间,前缀歪斜
- Markdown 列表、代码注释等非对齐结构基本不可用
- 建议开启
View → Draw White Space显式查看空白符后再拖
Text Pastry 插件是唯一支持差异化前缀的方案
原生 Sublime 的多光标本质是同步操作,所有光标输入同一字符串。没法让第 1 行加 id:、第 2 行加 name:。
必须装插件:Ctrl+Shift+P → 输入 Package Control: Install Package → 搜 Text Pastry → 点击安装(别装成 Text Paster)。
使用路径固定:
- 选中目标行(可含空行,它自动跳过)
-
Ctrl+Shift+P→ 输入Text Pastry: Insert Numbers→ 回车,默认从 1 开始递增 - 或
Text Pastry: Insert Text→ 粘贴多行文本(每行一个值),严格按顺序一一对应插入 - 注意:粘贴 5 行文本却只选了 3 行?它只处理前 3 行,不报错也不循环填充
复杂点在于:它不处理跨文件批量,也不支持表达式计算(比如 row * 2 + 1)。但真实场景里,序号补全、列表对齐这类需求,它比正则和多光标都可靠得多。

















