Sublime批量加行首字符的正确方法是:先选中多行,按Ctrl+Shift+L(Win/Linux)或Cmd+Shift+L(macOS)拆多光标,再按Home(Win/Linux)或Cmd+←(macOS)跳至行首输入;此为唯一可靠原生路径。

能,但必须分清场景:几十行用 Ctrl+Shift+L + Home;上百行或带条件(如跳过空行、已有注释)就该切正则;想每行加不同内容,必须装插件。
为什么 Ctrl+Shift+L 后光标默认在行尾?
这不是 bug,是 Sublime 的设计逻辑:Ctrl+Shift+L 把光标放在「选区末尾」,而多行选区的末尾就是每行换行符前——也就是视觉上的行尾。你没看到光标跳到行首,是因为它压根没被设计成那样。
- 按完
Ctrl+Shift+L后立刻按Home(Windows/Linux)或Cmd+←(macOS),才能让所有光标跳到缩进起点 - 要跳到绝对行首(比如绕过 BOM 或开头空格),得用
Ctrl+Home或Cmd+Home - 如果某行是空行,
Home会停在行首;但若空行混在中间,输入后变成//,属于预期行为,不是错误 - 中途按了方向键、
Esc或Ctrl+Z,状态栏右下角的 “x cursors” 提示就会消失——此时只剩一个光标在动,其余行根本没改
正则替换加前缀,^ 为什么有时不生效?
^ 看似简单,但漏掉一个开关就白忙活。它只匹配“行首位置”,不消耗字符,但前提是正则引擎必须启用,且环境要干净。
- 打开
Ctrl+H替换面板后,**必须点击右下角.*按钮**,否则^当字面量处理,啥也不匹配 - 混合换行符(
\r\n和\n共存)会导致部分行漏匹配;操作前先执行Ctrl+Shift+P→Set Line Endings: Unix统一为LF - 文件带 UTF-8-BOM 时,
^可能匹配不到首行开头;用File → Save with Encoding → UTF-8去掉 BOM - 想只给非空行加前缀:查找
^(?=\S);想跳过已有//的行:查找^(?!// )
怎么给每行加不同前缀?原生做不到
Sublime 的多光标本质是同步操作——Ctrl+Shift+L 拆出 100 个光标,你输一个字符,100 行就加同一个字符。没有“第 1 行插 id、第 2 行插 name”这种能力。
- 必须用插件,
Text Pastry是目前最轻量、兼容 Sublime 4 的选择 - 安装路径:先
Ctrl+Shift+P→Package Control: Install Package→ 搜索Text Pastry→ 点击安装(别装错成Text Paster) - 用法固定:选中目标行 →
Ctrl+Shift+P→Text Pastry: Insert Text→ 粘贴对应文本(每行一个值),回车即一一映射 - 注意:粘贴文本行数必须和选中行数一致;少粘了,后面几行不动;多粘了,多余行被忽略——不会报错,也不会循环填充
真正容易被忽略的是:加前缀不是“按完就完”。无论用哪种方式,操作中途都得盯一眼状态栏右下角有没有 “x cursors” 提示。没有这个,说明多光标已断,你敲的每个键只作用于当前那个光标——其余行全没动。

















