ctrl+shift+l批量加前缀需确保选区跨换行符,否则仅作用于单行;正则^替换更稳,但须启用正则模式、统一换行符与编码,并注意空行及vintage模式干扰。

能批量加前缀,但必须用对路径:Ctrl+Shift+L 拆光标 + Home 跳行首 + 输入,三步缺一不可;正则 ^ 替换是更稳的备选方案,尤其处理百行以上时。
为什么 Ctrl+Shift+L 按了没反应,或者只改了第一行
这个快捷键不认“你点了哪”,只认“选区里有没有换行符”。鼠标拖选时如果末尾没盖住换行符(比如停在最后一行最后一个字母上),它就当单行处理,静默失败。
- 安全选中法:先按
Ctrl+L选中第一行,再按住Shift+↓向下扩展,确保选区横跨至少两个\n或\r\n - 别用
Ctrl+A全选后按Ctrl+Shift+L——它确实会拆光标,但所有光标都卡在各自行尾,Home只跳第一行开头,其余不动 - 状态栏右下角出现 “x cursors”(如
5 cursors)才是真生效;按了方向键、Ctrl+Z或误触Esc都可能清掉部分光标,中途得看一眼
加前缀前,光标怎么统一落到真正行首
Ctrl+Shift+L 后光标默认停在每行换行符前,也就是行尾。要加前缀,必须让所有光标回到行首——但“行首”有两层意思:缩进起点,或物理行首(含 BOM 或空格前)。
- 普通情况:立刻按
Home(Windows/Linux)或Cmd+←(macOS),光标跳到缩进开头 - 要跳到绝对行首(比如文件开头有 UTF-8-BOM):用
Ctrl+Home(Win)或Cmd+Home(Mac) - 缩进不一致(混用 Tab 和空格)时,
Home行为不可靠;先执行Ctrl+Shift+P→ 输入Indentation: Convert to Spaces统一格式 - 更稳的操作链:选中目标行 →
Ctrl+Shift+L→Shift+Home(全选当前行内容)→←(左箭头移到行首)→ 输入前缀
正则 ^ 替换加前缀,哪些细节不能漏
这是千行级操作或需条件过滤时的首选,但默认行为和直觉有偏差:它不自动开正则模式,^ 也不是万能锚点。
- 硬性前提:打开
Ctrl+H替换面板后,**必须点击右下角.*按钮启用正则模式**;否则^当字面量处理,啥也不匹配 - 填错就全毁:别写
^.或^.*,它们会吞掉整行;只填^,替换栏填前缀(如//),才能安全插入位置 - 混合换行符(
\r\n和\n共存)会导致漏匹配;操作前先Ctrl+Shift+P→Set Line Endings: Unix统一为 LF - UTF-8-BOM 编码下,
^可能匹配不到首行开头;用File → Save with Encoding → UTF-8去掉 BOM - 空行也会被
^匹配,加//后变成//,这是预期行为,不是 bug
遇到空行、缩进混乱、Vintage 模式冲突怎么办
这些不是操作失误,是真实编辑场景里的常态。原生流程对它们容忍度低,得提前干预或换路径。
- 空行:会被
Ctrl+Shift+L赋予光标,输入后变成prefix_+ 换行;要么操作前手动删空行,要么用正则^(?=\S)只匹配非空行开头 - 缩进混乱:列选择(
Alt+拖拽)在这种情况下必然错位;必须先统一缩进(Convert to Spaces或Reindent),再走多光标或正则 - Vintage(Vim)模式:会把
Ctrl+Shift+L重映射为「从光标到行尾选中」;此时该功能失效,要么关 Vintage,要么直接切正则路径 - 想每行加不同前缀(如序号、自定义列表):原生不支持;必须装
Text Pastry插件,用Text Pastry: Insert Numbers或Insert Text实现
最易被忽略的点是:加完前缀不是终点,得立刻检查是否所有光标还在线——尤其在缩进不齐或开了 Vintage 的文件里,一个 ← 键或一次 Ctrl+Z 就可能让同步崩掉。别信“看起来像”,要看状态栏的 cursors 数字。











