sublime text列编辑无需设置快捷键,windows/linux用alt+鼠标左键垂直拖动,macos用ctrl+cmd+鼠标左键垂直拖动;列选后须按ctrl+shift+l(或cmd+shift+l)转多光标才能同步编辑。

Sublime Text 本身没有“设置列编辑快捷键”这回事
列编辑不是靠配置快捷键开启的模式,而是按住特定修饰键 + 鼠标拖动的瞬时行为。你找不到 column_select 或 toggle_column_mode 这类可绑定的命令——它压根不走命令系统。所谓“快捷键”,只是触发这个拖动动作的组合键,且不能自定义为其他键位。
Windows/Linux 必须用 Alt + 鼠标左键垂直拖动
这是唯一原生、稳定、无需插件的方式:
- 必须先按住
Alt,再按住鼠标左键从上往下(或下往上)垂直拖动——横向位移稍大,Sublime 就退化为普通文本选择 - 拖动时看到灰色矩形块才表示成功进入列选状态;松开即生效,不保存、不切换模式
- 如果没反应,检查是否启用了 Vintage 模式:
Ctrl+`打开控制台,输入view.settings().get("command_mode"),返回True就得关掉 -
"drag_text": true必须在设置中启用(默认是 true),否则Alt+拖动会被禁用
macOS 不能用 Cmd + 鼠标拖动,正确组合是 Ctrl+Cmd+鼠标拖动
官方文档和多数教程写的 Cmd+Option+拖动 在 macOS 上常失效,原因很实际:
- Mission Control 默认占用了
Cmd+Option+↑,系统级拦截导致 Sublime 收不到事件 -
Cmd+鼠标拖动是 macOS 原生的窗口拖拽行为,Sublime 不响应 - 真正可靠的是
Ctrl+Cmd+鼠标左键垂直拖动:这个组合几乎不被任何系统功能劫持 - 别信“Option+拖动”——macOS 的 Option 键对应 Windows 的 Alt,但 Sublime 原生不识别 Option 单独触发列选
列选完不按 Ctrl+Shift+L,打字只改第一行
很多人卡在这步:明明拖出了完整的灰色矩形,一敲字却只有首行变化。这不是快捷键没设对,而是漏了关键转换:
- 列选区域默认是「单个矩形选区」,输入只作用于第一个光标位置
- 必须立刻按
Ctrl+Shift+L(Windows/Linux)或Cmd+Shift+L(macOS)把它转为多光标 - 转完后,所有光标会落在同一列号上,此时输入、删除、
Ctrl+V才真正同步 - 验证是否成功:按
Ctrl+Shift+P输入Show Scope Name,看多个光标是否显示相同列号(如source.python meta.function.python - variable.parameter.python后面跟着一致的列数值)
列编辑真正的门槛不在“怎么设”,而在“怎么让列对齐”。混用 Tab/Space、开启 word_wrap、存在折叠代码块——这些都会让灰色矩形看起来对齐,实际光标坐标错位。别依赖视觉,用 Convert Indentation to Spaces 和 View → Word Wrap 关闭来确认底层一致性。











