sublime 的列选择无需开启模式,而是通过快捷键+鼠标拖动或键盘操作实现:windows/linux 按 alt+垂直拖动,macos 按 option+垂直拖动;或用 ctrl+alt+↑/↓(win/linux)、cmd+option+↑/↓(macos)逐行添加光标;命令面板输入“column select”可键盘触发列选。

Sublime 没有“开启列选择模式”这回事——它不靠开关、不靠设置项、也不靠 Toggle 命令。所谓列选择,就是你按下特定键+鼠标拖动的那一个瞬间触发的行为。
按住 Alt/Option + 垂直拖动鼠标是最稳路径
Windows/Linux:按住 Alt,再用鼠标左键从上到下严格垂直拖动;macOS:按住 Option(不是 Cmd),同样垂直拖动。拖动时看到灰色矩形选区,松开即生效。
- 斜着拖容易被 Sublime 误判为行内扩展,尤其某行末尾有空格时
- 别用
Ctrl+拖拽(Win/Linux)或Cmd+拖拽(macOS):这是普通文本选择,不是列选 - 中键拖拽不原生支持列选;必须配合
Ctrl(Win/Linux)或Cmd(macOS)才可能生效,但兼容性差,不推荐 - 如果拖不动或光标变箭头却不响应,先检查是否启用了 Vintage 模式:
view.settings().get("command_mode")返回True就是开了
键盘方式:Ctrl+Alt+↑/↓(Win/Linux)或 Cmd+Option+↑/↓(macOS)
这不是“进入模式”,而是逐行追加光标——光标会出现在每行相同列位置,适合起始列对齐良好的文本。
- 起始光标必须在目标列(比如你想改第 8 列,就先把光标移到第一行第 8 个字符处)
- 按
Ctrl+Alt+↓一次加一行,多次按可向下扩展;Ctrl+Alt+↑反向向上加 - 若某行太短,光标会停在该行末尾,不会越界;但也不会自动补空格或跳到下一行开头
- 比鼠标拖更准,尤其处理长文件或高缩放比例时
命令面板里搜 “Column Select” 是安全兜底方案
按 Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS),输入 Column Select 并回车。它会把当前选中文本区域,按行映射成列选光标(要求各行对应位置字符数一致)。
- 本质是模拟鼠标列选,但支持键盘触发,适合快捷键被系统占用(如 macOS 的 Mission Control 占了
Cmd+Option+↑)时使用 - 如果选区跨空行,光标会落在空行开头而非原列位置,导致错位;建议先删空行或用
Ctrl+Shift+L分割光标再调整 - 不依赖视觉对齐,但依赖“字符列数”计算——混用 Tab 和空格、含中文时仍可能偏移
真正难的不是“怎么开启”,而是让列选择不偏移:缩进不统一、中英文混排、插件干扰、甚至字体非等宽,都会让灰色矩形看起来对齐,实际光标落在错位字符上。编辑前花 10 秒执行 Convert Indentation to Spaces 和 Trim Trailing White Space,比反复重试鼠标拖拽更省时间。











