ctrl+shift+l拆行后光标默认在行尾,需按home/cmd+←跳至行首再输入才能批量加前缀;列选择(alt+shift+拖拽)更稳但需文本对齐;ctrl+d易误选字符串内词,建议用正则\bid\b验证或手动双击精准匹配。

Ctrl+Shift+L 拆行后光标默认落在行尾,不是行首
想给多行统一加前缀(比如 // 或 const ),直接按 Ctrl+Shift+L 后输入,内容会加在每行末尾——这是最常踩的坑。它不自动跳到行首,得手动干预。
- 先选中目标多行(鼠标拖选或
Ctrl+Shift+↑/↓) - 按
Ctrl+Shift+L,光标全部落在换行符前 - 立刻按
Home(Windows/Linux)或Cmd+←(macOS),所有光标会齐刷刷跳到行首 - 此时输入,才真正实现“批量加行首字符”
如果某行有缩进空格,Home 会停在缩进开头而非绝对行首;若需严格对齐代码块起始列,建议先用 Ctrl+Shift+P → 输入 Align Indent 统一缩进,再操作。
用列选择(Alt+Shift+拖拽)加行首字符更稳但有边界
列选择本质是竖向矩形框选,适合已对齐的文本块。比如处理一组缩进一致的函数调用,或 CSV 的字段名列表,它比 Ctrl+Shift+L + Home 更少出错。
- 按住
Alt+Shift(Windows/Linux)或Cmd+Shift(macOS),从第一行行首垂直向下拖到最后一行行首 - 松手后,所有行首位置出现光标,输入即生效
- 若某行开头是空格或制表符,且 Tab 宽度不一致,列选可能错位——此时打开
View → Draw White Space让空白符可见,再拖更准 - 列选无法跨软换行(
soft_wrap开启时),操作前建议临时关闭
Ctrl+D 匹配词时容易误入字符串或注释
想给所有变量名加前缀 user_,把光标放在第一个 id 上连按 Ctrl+D,结果连 "user_id" 里的 id 也被选中——因为 Ctrl+D 默认只认“完整单词”,但不会跳过引号内内容。
- 先确认目标是否真为独立标识符:用
Ctrl+H打开查找面板,输入\bid\b(开启正则),看高亮是否干净 - 若发现匹配进了字符串,改用
Ctrl+Shift+P→ 输入Find: Replace,正则填^(\s*)(\w+)(\s*=),替换为$1user_$2$3,勾选In Selection后只处理选中区域 - 或者,手动双击选中一个干净的
id(确保没带空格或标点),再按Ctrl+D,它会严格按所选文本匹配,不扩展到引号里
多光标下回车、Tab、退格的行为和预期不同
很多人加完前缀后想统一缩进,按 Tab 结果每行都插入了 4 个空格;或者按 Enter 想换行,结果所有光标处全劈成两行——这不是 bug,是 Sublime 的设计逻辑。
-
Tab在多光标下永远是「插入当前语言缩进」,不是「跳到下一个光标」;切换光标用Ctrl+↑/↓(Win/Linux)或Cmd+↑/↓(macOS) -
Enter会在每个光标位置插入新行,慎用;如需补空行,先Esc退出多光标,再在合适位置回车 -
Backspace会同步删除每个光标前的一个字符,但如果某光标卡在行首,它就啥也不删——这种不对称行为容易导致部分行漏删
光标数量超过几百个时,界面响应变慢,渲染延迟明显;改完务必按 Esc 清除所有光标,否则后续快捷键可能失效。











