sublime通过快捷键叠加光标实现多行输入:ctrl+shift+l按行拆光标(需正确选中换行符),alt+shift+拖拽列编辑,ctrl+d逐词匹配,光标遇不可编辑位或输入操作会自动合并。

Sublime 本身没有“设置多行同时输入”的开关,它靠快捷键实时叠加光标来实现——光标加在哪,输入就同步到哪。记成“光标即输入点”,比找设置项更可靠。
Ctrl+Shift+L 按行拆光标,最常用也最容易翻车
这是处理多行末尾/开头补内容(如加逗号、加#、补;)的主力操作,但效果完全取决于你**怎么选中那几行**:
- 错误做法:鼠标拖选时没覆盖到换行符(尤其最后一行末尾漏掉
\n),Ctrl+Shift+L会当成单行,只出一个光标 - 安全做法:先用
Ctrl+L(Windows/Linux)或Cmd+L(macOS)连续按,把目标行全选中(每按一次选一行),再统一按Ctrl+Shift+L - 光标默认落在每行末尾换行符前,所以输
,真就加在行尾;想加在行首?按Home,所有光标会跳到各行起始位置(注意:是缩进后的起始,不是物理行首) - 如果原行有缩进,
Home跳不过去,可先运行命令面板(Ctrl+Shift+P)→ 输入Align Indent清掉缩进,再操作
Alt+拖拽列编辑,对齐改参数/删时间戳的刚需操作
这不是多光标,但常被当成“多行输入”的替代方案——它生成的是竖直矩形选区,输入时所有行对应列位置同步响应:
- 必须按住
Alt(Windows/Linux)或Option(macOS)+Shift再拖鼠标,只按Alt无效 - 拖动时若某行太短,光标会停在该行尾,不会悬空;若错位,大概率是字体非等宽(比如用了系统默认UI字体),切到
Consolas或Fira Code立刻稳 - 中英文混排时慎用:中文字符宽度 ≠ ASCII,Sublime 按字符数定位,视觉上会偏移
- 列编辑状态下不能用
Ctrl+D,得先按Esc退出列选,才能切回多光标模式
Ctrl+D 逐词匹配,变量重命名的核心路径
它不是“搜索全部然后替换”,而是“从光标位置开始,按出现顺序一个个加光标”:
- 第一次按
Ctrl+D:选中当前光标所在单词(比如user_id) - 第二次按:选中下一个
user_id(全文向下扫描,不分大小写,但默认match_whole_word: true) - 遇到不想改的地方(比如字符串里的
"user_id"),按Ctrl+K再按Ctrl+D跳过当前匹配 - 误按太多?按
Esc立刻退出多光标,只剩最后一个光标;想撤销上一次光标添加,用Ctrl+U - 想一次性全选?用
Alt+F3(Windows/Linux)或Ctrl+Cmd+G(macOS),但它不区分上下文,注释和字符串里也会命中
为什么输着输着光标只剩一个了?
这不是崩溃,是 Sublime 的同步保护机制在起作用:
- 只要有一个光标卡在不可编辑位置(比如行尾、注释里、字符串中间、缩进空格上),而你又按了
Enter或Backspace,其他光标就会被自动合并 - 按
Home或End会让所有光标跳到各行首/尾,破坏原有对齐,后续输入就不同步 - 命令面板(
Ctrl+Shift+P)一弹出,所有多光标立即冻结,关掉后也不会恢复——别边查命令边编辑 - 最隐蔽的坑:文件被设为只读(状态栏右下角显示
read only),光标能加,但输入无效,排查时优先看这个











