Sublime Text列选择需手动触发:Windows/Linux按住Alt+鼠标左键垂直拖动,macOS按住Option+鼠标左键拖动;非开关模式,拖动时出现灰色矩形即生效,斜拖、误用Shift/Ctrl或启用Vintage模式会导致失败。

Sublime Text 里怎么触发列选择模式
列选择(Column Selection)不是默认开启的,得手动激活。Windows/Linux 按 Alt 不放,再鼠标拖选;macOS 是 Option + 拖选。别用 Shift 或 Ctrl,那只会扩展普通光标或多选行。
常见错误:按住 Alt 后鼠标点一下就松手,结果只选中一个竖线位置——列选择必须「按住不放 + 拖动」才生效。如果拖不动,检查是否开启了「Vintage 模式」,它会劫持 Alt 行为,临时禁用它(Ctrl+` 打开控制台,输入 view.settings().set('command_mode', False))。
用列选择批量增减缩进的实操步骤
缩进本质是行首空格或 Tab 字符,列选择能精准框住这些前导空白,再统一删或插。
- 先用
Ctrl+Shift+P调出命令面板,输Convert Indentation to Spaces或to Tabs统一缩进风格,避免混用导致列对不齐 - 把光标移到第一行缩进起始处,按住
Alt(Win/Linux)或Option(macOS),向下拖到目标行末尾,框出所有行首空白区域 - 按
Delete一次删掉整列缩进;想增加缩进?直接按Tab(会插入当前设置的缩进单位,比如 2 空格),或输入空格/Tab 手动补 - 如果某几行缩进长度不一致(比如有 2、4、6 个空格),列选择会选中“矩形区域”,可能带入多余字符——此时先用
Ctrl+Shift+I(Indentation: Reindent)自动对齐再操作
为什么有时列选择选歪了?缩进对齐失效的原因
根本原因是 Sublime 默认把 Tab 当作「显示宽度可变」的字符(比如设成 4 列宽),但列选择按屏幕像素算位置,不是按逻辑字符数。一旦混用空格和 Tab,视觉上对齐,实际字节位置错位,列框就会偏移。
解决办法只有两个:
- 全文件转成纯空格:
Ctrl+Shift+P→ 输入Convert Indentation to Spaces→ 回车 - 或统一 Tab 宽度:在右下角点击缩进标识(如
Tab Width: 4),选Convert Indentation to Tabs并确认 Tab Width 和项目规范一致
改完立刻试拖一次列选择,看是否能垂直对齐所有行首。
替代方案:不用鼠标拖,用快捷键快速列选多行
当要处理几十行以上时,拖鼠标容易手滑。更稳的方式是用键盘组合:
-
Ctrl+Shift+↑/↓:在当前列位置,向上或向下扩展列选择范围(需先用鼠标点一下起始列) -
Ctrl+Shift+L:先选中多行(普通行选),再转成每行一个光标,然后按Home跳到行首,Shift+→选中前导空白 —— 这招适合缩进长度完全一致的块 - 装插件
Origami后可用Ctrl+Alt+↑拆分视图,左右对比缩进差异,再列选修正
列选择本身不保存状态,每次操作都是独立的。别指望选完一行后按 ↓ 自动延伸——它不会像 Vim 的可视块模式那样记忆列位置。

















