Sublime Text鼠标列模式需先按Shift再左键拖动,否则仅普通选中;Windows/Linux用Shift+左键,macOS同理但可能受系统设置干扰,选中后输入/删除同步作用于各行列位置。

怎么用鼠标进入列模式选中多行文本
Sublime Text 的列模式本质是「按住 Shift + 鼠标拖选」,但关键在于起手方式:必须先按住 Shift,再按住鼠标左键从第一行开始拖——如果先点下鼠标再按 Shift,只会变成普通行选中或光标跳转。
常见错误现象:选区只出现在单行、松开鼠标后光标乱跳、实际只选中了首尾两行中间的字符块(而非垂直列)。根本原因是没在按下鼠标前就按住 Shift。
- Windows/Linux:按住
Shift+ 左键拖动,拖动方向不限(可斜向,Sublime 会自动对齐为矩形) - macOS:同上,但部分键盘映射可能需配合
Ctrl或Cmd;若失效,检查系统设置里是否启用了「鼠标键」或「粘滞键」干扰了组合键 - 选中后直接输入文字,会覆盖所有列位置的原有内容(类似 Excel 填充);按
Delete或Backspace会同时删掉每行对应列的字符
用快捷键快速开启列模式(比鼠标更稳)
鼠标拖选容易偏移,尤其跨屏或缩放后。更可靠的方式是用快捷键定位起始和结束点,再生成列选区。
典型使用场景:想给 20 行函数调用统一加前缀 log.,但每行开头缩进不一致,不能靠行首对齐。
- 把光标放到第一行目标列位置(比如第 12 列),按
Ctrl+Shift+↑/↓(Windows/Linux)或Cmd+Shift+↑/↓(macOS)纵向扩展光标到其他行相同列 —— 这会生成多个独立光标,不是列选区,但效果接近 - 更精准的列选:先用
Ctrl+G跳转到某行,再按Ctrl+Shift+P打开命令面板,输入Selection: Add Previous Line或Add Next Line逐行追加光标,再按→或←统一横向移动光标到目标列 - 注意:
Ctrl+Shift+L是「拆分选择为行」,会把当前选中文本按行切开并为每行设一个光标,不是列模式,别混淆
列模式下编辑时为什么有些字符没被改到
列模式操作的是「屏幕坐标」,不是「逻辑字符位置」。一旦某行内容过短、或包含制表符 \t、全角字符、emoji,列对齐就会错位。
例如:第 3 行只有 5 个字符,你从第 8 列开始列选,这行实际无内容可选,后续输入会直接插在行尾,而其他长行则在第 8 列插入——结果就是格式错乱。
- 解决办法:先执行
View → Indentation → Convert Indentation to Spaces,确保缩进统一为space,避免\t导致列计算偏差 - 用
Ctrl+Shift+P输入Toggle Word Wrap关闭自动换行,防止视觉列与物理列不一致 - 如果必须处理含 emoji 或 CJK 字符的代码(如注释),建议先用正则
Find → Find in Files批量替换,而不是依赖列编辑
列模式无法跨折叠代码块操作
Sublime 默认禁止列选区跨越折叠区域。如果你展开了一半函数体,又试图从上面一行列选穿过去,松开鼠标后选区会在折叠边界突然中断。
这不是 bug,是设计限制:折叠节点本身没有「列坐标」,Sublime 无法计算其内部结构。
- 临时解法:先执行
Ctrl+K, Ctrl+1(全部展开),再列选;操作完再Ctrl+K, Ctrl+0折叠回去 - 长期规避:把常需列编辑的代码段(如配置数组、SQL 字段列表)尽量保持展开状态,或拆到单独文件中管理
- 注意:
Ctrl+Shift+J(合并行)和列模式互斥,执行后原有列选区会丢失,且无法撤销列操作步骤


















