最轻量方案是ctrl+shift+l后立刻按home(win/linux)或cmd+←(macos)跳行首再输入;否则光标默认落在每行换行符前即行尾,致前缀错加末尾。

直接用 Ctrl+Shift+L 拆多光标 + Home(Windows/Linux)或 Cmd+←(macOS)跳行首 + 输入,是最轻量、不依赖插件的方案;但若漏掉跳行首这步,所有前缀都会加在行尾——这是新手翻车率最高的操作。
为什么 Ctrl+Shift+L 后光标默认在行尾?
这不是 bug,是 Sublime 的设计逻辑:Ctrl+Shift+L 把光标落在选区末尾位置,而多行选区的“末尾”就是每行换行符前,也就是视觉上的行尾。你没看到光标跳到行首,是因为它压根没被设计成那样。
- 必须在按完
Ctrl+Shift+L后**立刻**按Home或Cmd+←,否则输入内容全堆在行尾 - 如果某行开头有缩进,
Home默认停在缩进起点,不是物理行首;要跳到绝对行首(比如 BOM 前),得用Ctrl+Home(Win)或Cmd+Home(Mac) - 全选后按
Ctrl+Shift+L仍会把光标卡在行尾,且Home只对第一行生效——别这么干
^ 正则替换加注释前缀,哪些设置不能漏?
正则更快更稳,尤其处理空行、百行以上或需条件控制时,但错一个开关就白忙活。
- 硬性前提:打开
Ctrl+H替换面板后,**必须点击右下角.*按钮启用正则模式**;否则^当字面量,啥也不匹配 - 查找栏只填
^,替换栏填你要的前缀(如//);千万别写^.*或^.,否则整行被替换成前缀 - 混合换行符(
\r\n和\n共存)会导致部分行漏匹配;操作前先执行Ctrl+Shift+P→Set Line Endings: Unix统一为 LF - 文件带 UTF-8-BOM 时,
^可能匹配不到首行开头;用File → Save with Encoding → UTF-8去掉 BOM
缩进不一致时,前缀歪斜怎么破?
Home 键在不同缩进下停靠位置不同,强行输只会放大对齐问题。这不是光标没到位,是格式本身不规范。
- 统一缩进最简单:选中目标行 →
Ctrl+Shift+P→ 输入Indentation: Convert to Spaces或Indentation: Reindent - 想让前缀插在缩进之后、内容之前?用正则:查找
^(\s*)(.+)$,替换为$1// $2($1是原缩进,$2是原内容) - 列选择(
Alt+Shift+拖拽)看起来直观,但 Tab 宽度不一致时极易错位;开启View → Draw White Space显式查看空白符后再拖更稳
真正容易被忽略的是:加完前缀后,得立刻看一眼状态栏右下角有没有 “x cursors” 提示。没有这个,说明多光标已丢失——可能按了 Esc、方向键、甚至 Ctrl+Z,只剩一个光标在动,其余行根本没改。











