sublime text列编辑需用alt/option+左键拖动触发,右键无效;列选后须按ctrl+shift+l(或cmd+shift+l)转多光标才能批量编辑;对齐失效主因是tab/空格混用、代码折叠及word_wrap启用。

Sublime Text 没有鼠标右键垂直选择功能,按右键只会弹菜单,不是列编辑入口——别在右键上浪费时间。
怎么正确触发列选择(别碰右键)
列选择只响应特定修饰键 + 鼠标左键拖动,右键完全不参与。Windows/Linux 用 Alt + 左键拖,macOS 用 Option + 左键拖;必须先按住键、再拖动,松开即生效。
- 拖动时看到灰色矩形框才算成功,纯水平或角度太斜会退化为普通选择
- 别信“右键+拖”“右键+方向键”之类说法——Sublime 原生不绑定右键做列选
- 如果拖不动,先检查
Preferences → Settings中"drag_text": true是否被设为false
列选完为什么敲字只改第一行
因为 Sublime 默认把矩形选区当单个整体处理,输入只作用于第一个光标位置。真正批量编辑前,必须手动转成多光标。
- 按
Ctrl+Shift+L(Windows/Linux)或Cmd+Shift+L(macOS)把列选区拆成每行一个独立光标 - 漏这一步就直接打字,只会改首行;已误输可用
Ctrl+Z撤回,再补按即可挽救 - 验证是否真有多光标:按
Ctrl+Shift+P输入Show Scope Name,看光标是否落在同一列号
列编辑对齐失效的三个真实原因
看起来对齐了,实际光标错位,是列编辑最隐蔽的坑。问题不在操作,而在文本底层状态。
- 混用
Tab和空格:即使显示对齐,字符偏移不同 → 光标落在“视觉对齐、逻辑错位”的地方 - 折叠代码块存在:列选无法穿透折叠行,选区会在折叠处中断,且无提示
- 开启了
word_wrap: true:软换行被当新行处理,导致纵向坐标系统错乱
实操建议:编辑前先执行 Convert Indentation to Spaces,临时关闭 Word Wrap,展开所有折叠(Ctrl+K → Ctrl+J)。
键盘党怎么不用鼠标做列编辑
定位光标到起始列,用组合键逐行加光标,比拖鼠标更精准,也避开输入法/系统快捷键干扰。
- Windows/Linux:
Ctrl+Alt+↓向下逐行加光标,Ctrl+Alt+↑向上加 - macOS:
Cmd+Option+↓或Cmd+Option+↑ - 注意:Vintage 模式会劫持
Ctrl行为,若无效可查view.settings().get("command_mode")是否为True
列编辑真正的复杂点,从来不是“怎么选”,而是“你根本不知道它没选全”。对齐靠转换,验证靠命令,别信眼睛。











