Sublime Text不提供多行编辑开关,所有多光标操作均为实时快捷键行为:Ctrl+Shift+L按换行符拆分光标,Ctrl+D逐个匹配字面完全一致的选中内容,列选择需等宽字体且禁用干扰插件。

Sublime Text没有“配置多行编辑热键”这回事
它压根不提供开关或设置项来“开启多行编辑模式”,所有多光标操作都是实时叠加的快捷键行为。你按一次 Ctrl+Shift+L,它就立刻拆光标;按一次 Ctrl+D,它就立刻找下一个匹配词——没缓存、不记忆、不持久。所谓“配置”,其实是校准你的操作前提和环境。
- 确保用户设置里
"drag_text": false已写入,否则Ctrl+Click会拖动文本而非加光标 - 禁用任何干扰光标逻辑的插件(比如某些自动补全或格式化插件会在 Esc 或方向键后清空多光标)
- 字体必须是等宽(如
Fira Code、Consolas),否则列选择(Alt+Shift+拖动)视觉错位 - 文件不能是只读状态,否则列编辑静默失败,状态栏右下角显示
read only
Ctrl+Shift+L 拆光标总只出一个?检查选区是否含换行符
Ctrl+Shift+L 不是“给当前行加光标”,它只做一件事:把已选中的文本按 \n 切开,每段末尾放一个光标。失败几乎全因选区没选对。
- 鼠标拖选时最后一行末尾没覆盖到换行符(视觉上像选中了,其实漏了
\n),它就当单行处理,只出一个光标 - 想安全生效:先用
Ctrl+L逐行选中目标行(每按一次选一行),再统一按Ctrl+Shift+L - 若光标落在缩进空格上,说明你选区里包含了开头的空格或制表符——建议先执行
Ctrl+Shift+P→ 输入Trim Trailing White Space清理空白 - 加前缀(如
//)前,先按Home把所有光标拉到行首;加后缀(如;)前,先按End
Ctrl+D 为什么跳过目标变量名?它只认字面完全一致
Ctrl+D 默认开启 match_whole_word: true,且严格区分大小写、下划线和边界。它不是模糊搜词,而是从当前选中内容出发,找下一个**字面完全一致**的片段。
- 双击选中
user_id后连按Ctrl+D,会跳过user_id_list(多了_list)和USER_ID(大小写不符) - 想改
userName却漏了user_name?先确保双击选中的是你要的完整形式,避免被单词边界截断 - 注释里有同名字符串干扰?按
Ctrl+K再按Ctrl+D,跳过当前高亮项,光标保留在原位 - 一次性全选?用
Alt+F3(Windows/Linux)或Ctrl+Cmd+G(macOS),但注意上限约 10000 处,超量静默丢弃
列编辑 Alt+Shift+拖动失效?不是快捷键问题,是触发条件没满足
Sublime 的列选择必须是 Alt+Shift(Windows/Linux)或 Option+Shift(macOS)+ 鼠标拖动,单独按 Alt 无效;而且它和多光标是互斥模式。
- 拖动时某行太短,光标停在该行尾——这是正常行为,不是 bug
- 若视觉错位,大概率是字体非等宽(如系统默认 UI 字体),换成
Consolas或Fira Code立刻稳定 - 中英文混排时慎用:中文字符占位宽度 ≠ ASCII,Sublime 按字符数定位,视觉上会偏移
- 列选择状态下不能用
Ctrl+D、Ctrl+U或方向键扩展光标——必须先按Esc退出,才能切回多光标模式
最常被忽略的细节是:多光标下 Tab、Enter、Backspace 全部同步执行,且按当前语言缩进规则或换行逻辑生效——不是“跳焦点”“换一行”“删前一个字符”,而是批量作用于每个光标位置。按错一次方向键或 Esc,所有光标瞬间消失,改写就中断了。


















