sublime text多行替换依赖光标控制而非选中多行;ctrl+shift+l仅对含换行符的选区生效,需先用ctrl+l逐行选择再拆光标;末尾加内容宜用正则查找$替换;alt+f3后跳过某匹配需ctrl+k+ctlr+d;全局替换前须验证高亮并用正则限定上下文。

Sublime Text 的多行替换不是靠“选中多行再打字”实现的,而是靠光标控制——没生成多个独立光标,就永远只能改第一行。
Ctrl+Shift+L 拆光标总只在第一行生效?
这个快捷键不是“开启多行编辑模式”,它只对已含换行符的选区起作用。鼠标拖选时没跨过换行符(比如只拖到某行末尾但没进下一行),Ctrl+Shift+L 就只会生成一个光标。
- 正确做法:用
Ctrl+L逐行选中目标行(每按一次加一行),再统一按Ctrl+Shift+L - 空行也会被拆出光标,但光标落在行首——若你预期光标都在行尾,得手动按
End或先运行Align Indent - 如果选区里有缩进空格,所有光标会卡在缩进位置,输内容时整块右移,表面齐、实际错位
想给多行末尾统一加内容,但行长短不一怎么办?
列编辑(Shift+Alt+鼠标拖选)在这里容易失效,因为末尾对不齐。更稳的方式是正则替换或命令对齐。
- 轻量方案:打开
Ctrl+H,勾选Regular Expression,查找$(行尾锚点),替换为你要加的内容(如;) - 精准限定范围:先手动选中目标行,再按
Ctrl+Shift+L,此时光标只出现在所选行末尾,再按End+ 输入 - 装了
Alignment插件的话,可调出命令面板输入Align on Last Non-Whitespace Character,自动对齐非空白字符末尾
Alt+F3 全选同词后,怎么跳过某些匹配项?
Alt+F3 是暴力全选,但真实场景常需“选中大部分、跳过个别”。这时候不能靠删光标,得用组合键干预选择流。
- 按
Ctrl+D逐次添加匹配项,每按一次加一个新光标 - 当光标落到不想改的那一处时,按
Ctrl+K,再按Ctrl+D—— 这个组合会跳过当前匹配,继续找下一个 - 误操作后想重来?按
Esc清除所有多光标,回到单光标状态
全局替换(Ctrl+Shift+F)为什么改了不该改的地方?
跨文件替换最危险的不是漏改,而是误改——尤其在没限定上下文时,console.log 可能藏在字符串或注释里,一替全崩。
- 务必先点
Find看高亮数量和位置,确认是否真符合预期 - 用正则加限定:比如只改独立的
log行,查^\s*console\.log\(.*\);?\s*$,比盲目搜log安全得多 -
Where框填.才表示整个项目;填空 = 只搜已打开标签页;填./src/**/*.js要用正斜杠,Windows 下也别写反斜杠
真正卡住人的从来不是功能找不到,而是默认行为和边界条件——比如 Ctrl+Shift+L 对空行也生效、Alt+F3 不支持跳过、Replace All 不自动保存。这些细节不试错一遍,根本意识不到它们存在。











