Sublime Text 的 Insert Numbers 命令需配合多光标使用,否则仅在首行插入一个数字;其原生命令 Insert Num 从1开始、步长为1且不可调;插件 InsertNums 支持自定义起始值和步长但格式敏感;列选择+Increment Selection 是唯一可控对齐方案。

Insert Numbers 命令必须配合多光标,否则只插一个数
Sublime Text 自带的 Insert Numbers 命令不是“选中多行就自动编号”,它只响应多光标位置。如果你只是拖选 10 行再按 Ctrl+Shift+P → 输入 Insert Numbers,结果只会往第一行光标处插入一个数字(通常是 0),其余行无变化。
正确做法是先创建多光标:
- 用
Ctrl+Shift+L(Windows/Linux)或Cmd+Shift+L(macOS)选中目标行,再按←或Ctrl+Home把所有光标移到真正行首(注意:Home 键默认停在缩进起点,需再按一次或直接用 ←) - 或按住
Ctrl(Cmd)+ 鼠标左键,在每行开头逐个点击 - 确保光标列严格对齐——缩进不一致(如混用 Tab 和空格)会导致数字插在不同水平位置
Insert Num 是最简原生命令,但起始值和步长不可调
Insert Num 是 Sublime Text 3/4 内置命令,无需插件,执行路径为 Ctrl+Shift+P → 输入 Insert Num → 回车。它默认从 1 开始、步长为 1,且只作用于已选中的多行(不是多光标)。
限制很明确:
- 不能指定起始值(想从
0或1001开始?不行) - 不能设步长(想生成
1, 3, 5...?不行) - 不能补零(
001,002不支持) - 如果只把光标放在空行上单独执行,它只给当前行插
1,不会批量生效
InsertNums 插件输入格式极敏感,错一个字符就失效
装了 InsertNums 插件后,命令 InsertNums: Insert Numbers 支持自定义起始值和步长,但输入框校验严格:
- 只接受两个整数,用空格或逗号分隔,例如:
1001 1、0,-2 - 不能含小数(
100.5)、单位(100px)、字母(100a)、括号或中文符号 - 只输一个数(如
42)→ 每行都填42,这是设计行为,不是 bug - 负步长合法:
-5 2表示从-5开始,每次加2(即-5, -3, -1...)
输错格式时,界面不报错,但结果退化为全填相同值,容易误判为功能异常。
列选择 + Increment Selection 是唯一可控对齐方案
当你需要数字严格对齐某列(比如 CSV 第二列、日志时间戳右侧),且要求起始值/步长精确控制时,Increment Selection 是目前最稳的路径——它不依赖正则、不跳过空行、不污染上下文。
操作前提必须是矩形列选区:
- 按住
Alt(Windows/Linux)或Option(macOS),鼠标从目标列顶部垂直拖到底部;或用Ctrl+Alt+↑/↓扩展列选区 - 普通行选或
Ctrl+Shift+L生成的光标无效,会错位 - 列选前建议统一缩进:
Ctrl+Shift+P→Indentation: Convert to Spaces,避免 Tab/空格混用导致视觉错位
列选后输入起始数字(如 1001),再执行 Increment Selection,就能得到严格对齐的等差序列。
真正容易被忽略的是:列选择不是“行首操作”,它只认物理列位置。缩进不齐的文本、Markdown 列表、带注释的代码行,一律不适合走这条路——该用 Ctrl+Shift+L + ← + Insert Num 或正则替换。


















