多光标行首加前缀需统一换行符、去除bom、转换缩进为空格;小规模用ctrl+shift+l配cmd+home,大规模用正则^替换;差异化前缀须用text pastry插件。

Ctrl+Shift+L 后光标默认在行尾,不是行首
选中多行后按 Ctrl+Shift+L(Windows/Linux)或 Cmd+Shift+L(macOS),所有光标会落在每行换行符前——也就是物理行尾。此时直接输入 // 或 #,结果是加在行末,而非行首。
必须立刻补按 Home(Win/Linux)或 Cmd+←(macOS)让光标跳到行首;若某行有缩进,Home 通常只跳到缩进起点,再按一次才到绝对行首。更稳做法是直接用 Ctrl+Home(Win)或 Cmd+Home(Mac)一步到位。
- 别用
Ctrl+A全选后再按Ctrl+Shift+L:所有光标仍卡在行尾,且Home只移动第一行光标 - 鼠标拖选时,末尾必须盖住换行符(比如拖到下一行开头),否则
Ctrl+Shift+L静默失败,状态栏不显示 “x cursors” - 中途误按方向键、
Esc或Ctrl+Z会清掉部分光标——每次输字符前,务必确认状态栏右下角仍有 “x cursors” 提示
缩进不一致时,Home 行为不可靠
Tab 和空格混用会导致 Home 停靠位置不一致:有的停在缩进后,有的停在行首前,结果前缀歪斜错位。
不要手动调光标对齐。先统一格式:
- 选中目标行 →
Ctrl+Shift+P→ 输入Indentation: Convert to Spaces,把 Tab 全转为空格 - 或用正则预处理:
Ctrl+H→ 查找^(\s*)(.+)$,替换为$1prefix_$2,这样前缀紧贴原有缩进,不破坏结构 - 开启
View → Draw White Space显式查看空白符,避免列选择(Alt+拖拽)因视觉错位导致加偏
正则替换 ^ 是千行级操作的首选
原生多光标适合几十行以内;超过百行,^ 正则替换更稳、更快、不依赖光标状态。
硬性前提:打开 Ctrl+H 后,**必须点击右下角 .* 按钮启用正则模式**。漏点它,^ 就被当字面量,替换结果全是 ^prefix,而非插入行首。
- 安全写法:查找栏填
^,替换栏填//,点“全部替换” - 别写
^.+或^.*:它们会吞掉整行内容,只留下前缀 - 混合换行符(
\r\n和\n共存)会导致漏匹配——操作前先Ctrl+Shift+P→Set Line Endings: Unix统一为LF - UTF-8-BOM 编码下
^可能匹配不到首行开头;用File → Save with Encoding → UTF-8去掉 BOM
想每行加不同前缀?必须用插件
原生 Ctrl+Shift+L 和正则都不支持“第1行加 id:、第2行加 name:”这类差异化插入。这是机制限制,不是操作问题。
唯一轻量可靠的方案是 Text Pastry 插件:
-
Ctrl+Shift+P→Package Control: Install Package→ 搜Text Pastry(注意拼写,不是Text Paster) - 选中目标行 →
Ctrl+Shift+P→Text Pastry: Insert Text→ 粘贴对应文本(每行一个值),回车即一一映射 - 若粘贴 5 行文本但只选了 3 行,它只会插前 3 行,不会报错也不会循环填充——务必提前核对行数
真正容易被忽略的是:BOM、混合换行符、缩进格式这三者只要有一个没处理,无论用哪种方法,前缀都会加错位置。别跳过检查步骤。











