列选择需先alt+拖拽再ctrl+shift+l激活多光标,否则仅首行生效;列不对齐时应改用正则(如csv第3列:^(1,){2}(1)(?=,|$))或命令“move to column”精确定位。, ↩

用 Alt+鼠标拖拽做列选择,但必须立刻按 Ctrl+Shift+L 拆光标
列选择本身不等于多行编辑——它只生成一个矩形选区,Sublime 默认只对第一个光标执行操作。你拖完松手,看到灰色竖条,这还不是编辑状态。
常见错误是直接输入内容,结果只改了第一行。正确流程是:
– 按住 Alt(Windows/Linux)或 Option(macOS),鼠标垂直向下拖出目标列区域
– 松手后,**立刻按 Ctrl+Shift+L**(macOS 为 Cmd+Shift+L)
– 此时每行对应位置出现独立光标,再输入新值,才会同步生效
- 斜着拖会变成普通文本选择,必须严格垂直
- 空行会被跳过,光标落到下一行开头;提前删空行或手动调整
- 字体不是等宽(如 Consolas、Source Code Pro)会导致列偏移,需在
Preferences → Settings中确认"font_face": "Consolas"
列不对齐时别硬拖,改用正则捕获第 N 列
CSV、日志或 Tab 分隔文本如果靠空格/Tab 对齐,但列宽不一致,用鼠标拖极易错位。这时应放弃列选择,转用正则精准定位字段。
比如删 CSV 中第 3 列(即第 2 个逗号后、第 3 个逗号前的内容):
– 打开替换面板,启用 .*(regex 模式)
– 查找框填:^([^,]*,){2}([^,]*)(?=,|$)
– 替换框填:新值 或留空(删该列)
– 注意:这个正则匹配的是“第 3 列内容本身”,不含前后分隔符,避免误删逗号
- Tab 分隔请把
,换成\t,且确保 regex 模式开启(\t才被识别为制表符) - 含引号的 CSV(如
"a,b",c,d)需更复杂正则,建议先用插件或导出到 Excel 处理 - 测试时先点
Find看高亮是否准确,再点Replace All
想在每行固定列插入内容?用命令面板精确定位
靠目测拖拽第 10 列、第 15 列容易偏 1~2 位,尤其有混合空格和 Tab 时。Sublime 提供命令级定位,比拖更稳。
操作步骤:
– 先用 Ctrl+L 选中所有目标行
– 按 Ctrl+Shift+L 拆光标
– 按 Ctrl+Shift+P 调出命令面板,输入 Move to Column,回车
– 输入列号(从 1 开始计,空格和 Tab 各算 1 位),回车
– 所有光标将精确跳到该列起始位置,此时输入内容即完成批量插入
- 列数计算包含行首缩进、空格、Tab;Tab 必须显式算作 1 位,不能按显示宽度估
- 若某行该列不存在(太短),光标会停在行尾,需人工检查或预处理补足空格
- 该命令不支持小数列(如“第 12.5 列”),只接受整数
为什么改完发现有些行没变?大概率是缩进不统一或含不可见字符
多行列编辑最隐蔽的失败原因,不是操作错,而是数据本身不干净。例如:
– 混用空格和 Tab 缩进:看起来对齐,实际字符数不同,Move to Column 12 在某些行落在空格上,在另一些行落在 Tab 上,导致光标错位
– 行尾含 \r(Windows 风格换行)或 BOM 字节:可能干扰正则匹配或光标定位
– 注释行或空行夹杂其中:列选择跨空行时,光标自动归零,而非保持列位置
- 统一缩进:用
Ctrl+Shift+P→Convert Indent to Spaces或Convert Indent to Tabs - 显示不可见字符:菜单
View → Show Whitespaces,一眼看出混用问题 - 处理前先删空行或注释行,或用正则
^\s*$先Find All再Delete











