Sublime Text 的列选择是 Alt/Option+垂直拖拽的瞬时操作,非持续模式;需统一缩进、关闭软换行、展开折叠以确保列对齐;列选后须按 Ctrl+Shift+L(或 Cmd+Shift+L)转为多光标才能批量编辑。

Sublime Text 没有“开启列模式”这回事,按住键再拖鼠标不是进某个模式,而是触发一次实时动作——松开就结束,再拖再算一次。
列选择不是模式,是 Alt/Option + 垂直拖拽的瞬时操作
Windows/Linux 用 Alt + 鼠标左键垂直拖动;macOS 用 Option + 鼠标左键垂直拖动。拖动时出现灰色矩形选区,松手即生效。
- 别斜着拖:横向偏移超过 15°,Sublime 就当你是普通文本选择
- 别先点鼠标再按
Alt:必须Alt按下后再点左键并拖动,否则光标跳转或只选单行 - 别用
Ctrl+鼠标(Win)或Cmd+鼠标(macOS):那是普通块选,不是列选 - 如果拖不动、光标变箭头却不响应,先检查是否启用了
Vintage模式:Ctrl+`打开控制台,输入view.settings().get("command_mode"),返回True就得关掉
列选完敲字/粘贴只改第一行?漏了 Ctrl+Shift+L 这步
列选生成的是一个矩形选区,不是多个光标。Sublime 默认只对第一个光标执行输入或粘贴,其余行不响应。
- 正确流程:列选 → 按
Ctrl+Shift+L(Win/Linux)或Cmd+Shift+L(macOS)把矩形拆成每行一个光标 → 再输入或Ctrl+V - 如果中间点了空白处、按了
Esc或切了窗口,多光标就丢了,只剩一个,Ctrl+V自然只作用于一行 - 更稳妥的填值方式:列选后按
Ctrl+Shift+P→ 输入Insert Text at Carets→ 直接键入内容,不依赖剪贴板状态
列边界错位?缩进不统一是最大元凶
列选择按屏幕坐标计算,\t 和空格宽度不同、混合缩进、折叠代码、软换行都会导致视觉对齐但物理列偏移。
- 操作前务必执行:
Ctrl+Shift+P→ 输入Convert Indentation to Spaces,统一为软缩进 - 关闭自动换行:
View → Word Wrap关掉,避免软换行干扰列定位 - 展开所有折叠:
Ctrl+K → Ctrl+J,否则列选会在折叠行断开 - 怀疑列不准?
Ctrl+Shift+P→Show Scope Name,看光标当前列号是否一致
快捷键冲突时,用命令面板绕过所有键位问题
系统快捷键(比如 macOS 的 Mission Control 占用 Cmd+Option+↑)会让 Ctrl+Alt+↓ 类快捷键失效,这时命令面板最可靠。
-
Ctrl+Shift+P→ 输入Column Select:它会模拟鼠标列选逻辑,支持键盘触发 - 想批量插在行首?搜
Insert at Beginning of Line,不依赖横向对齐,也不怕空行打断 - 要逐行加光标而非矩形选区?用
Add Next Line或Add Previous Line命令,再用方向键微调列位置


















