Sublime Text原生支持多行编辑,靠快捷键实时叠加光标,按错Esc/方向键/Ctrl+X即消失;Ctrl+Shift+L按选区内的\n数量拆光标,非按行数识别,漏换行符则只出一个光标。

Sublime Text 原生支持多行编辑,不需要装任何插件——所有功能靠快捷键叠加光标实现,按错一个键(比如 Esc、方向键、Ctrl+X)光标就立刻消失,这是最常卡住的点。
为什么 Ctrl+Shift+L 没反应或只出一个光标
这个快捷键不是“识别你选了几行”,而是把选区里出现的每个 \n 当作切口,拆出光标。没反应=选区不含换行符;只出一个=选区里只有一个 \n。
- 鼠标拖选时,最后一行末尾必须覆盖到换行符(视觉上看似选中了,实际可能漏掉
\n) - 更稳的做法:
Ctrl+L选中第一行 →Ctrl+L再选下一行 → 重复直到目标行全被选中 → 最后按Ctrl+Shift+L - 如果装了 Emmet 或其他插件,可能劫持了该快捷键,可进
Preferences > Key Bindings搜索split_selection_into_lines确认绑定是否正常
如何在每行开头批量加前缀(比如 // 或 console.log()
关键不是 Home,而是让光标落到物理行首。默认 Home 会停在第一个非空字符处,缩进存在时就失效。
- 选中目标行 →
Ctrl+Shift+L→ 按Ctrl+Shift+P输入Move to Beginning of Line(内置命令,无需插件) - 或者:选中后
Ctrl+Shift+L→ 按←(左箭头)一次,光标就落在每行最开头 - 别用
Ctrl+A后按Home:这只会让第一个光标跳到行首,其余光标不动,敲字只改第一行
如何在每行末尾批量加内容(比如 ; 或 ");)
行尾不是固定位置,End 键行为受空格/制表符影响,容易停在空白处而非真正结尾。
- 选中目标行 →
Ctrl+Shift+L→ 按End(Windows/Linux)或Cmd+→(macOS)→ 输入内容 - 如果某几行结尾有空格,
End会停在空格上,此时先按Ctrl+Shift+P输入Move to Hard EOL(Sublime Text 4 原生支持,旧版需安装插件) - 远程环境或某些键盘布局下
End失效,可直接用Ctrl+→替代
想改多个相同单词(比如变量名),但 Alt+F3 卡顿或匹配不准
Alt+F3 一次性选中全部匹配项,适合小文件;大文件易卡,且默认大小写敏感、不区分词边界。
- 更可控做法:
Ctrl+F搜目标词(如user_id)→ 勾选Whole Word和Match Case(按需)→ 按Enter跳到第一个 → 按Ctrl+Shift+L,立刻生成所有匹配光标 - 如果只想改部分匹配(比如跳过注释里的),可先
Ctrl+Click手动加几个光标,再按Ctrl+Shift+L扩展其余匹配 - 改完立刻输入,不要先按方向键或删字符——任何文本变更都会触发光标合并,失焦后只能用
Ctrl+U撤销最近一次光标操作
真正难的不是记快捷键,是理解 Sublime 的光标模型:它不维护“多行编辑模式”,只响应“当前有多少个独立光标点”。一旦你移动、删除、甚至按了 Esc,所有光标就回归单点状态——这个设计细节,90% 的人第一次踩坑时都没想到。











