Sublime多行递增数字必须先布多光标,否则Insert Sequence等命令静默失效;原生命令不支持补零,需插件或列选+Increment Selection实现精准递增。

Sublime 多行递增数字,不装插件也能做,但必须先布好多光标——没多光标,Insert Sequence、Insert Numbers、Insert Num 全都静默失效。
为什么按 Ctrl+Shift+P 输入 Insert Sequence 没反应?
它只响应「多光标」,不是「命令触发即插入」。单光标下执行,界面无提示、无报错、无输出,容易误判为功能损坏。
- 正确做法:先用
Ctrl+Shift+L(选中多行后按)或Ctrl+Alt+↑/↓或Ctrl+鼠标左键手动布光标,再执行命令 -
Ctrl+D选中相同词后执行,会填重复数字(比如全插 1),因为 Sublime 把它识别为“单次插入” - 原生命令默认起始值为 1、步长为 1;执行后弹出的输入框可填
1001 1或1001,5来改起始和步长
想从 1001 开始、带三位零填充(如 1001 → 1002 → 1003),该用哪个?
原生命令不支持格式化,Insert Sequence 和 Insert Numbers 都只输出纯数字 1001、1002,不会自动补零。要 1001→1002→1003 可以,但要 0001→0002→0003,必须走两步:
- 先用
InsertNums: Insert Numbers或Text Pastry插件生成带前导零的序列(如tp-num 1 5 1 3) - 或者用列选择 + 正则替换:
Ctrl+Alt+↑/↓列选一列 → 输入0001→Ctrl+Shift+P→Increment Selection→ 再手动补零逻辑靠正则^(\d+)$替换为str_pad($1, 4, "0", STR_PAD_LEFT)(需 Python 控制台,不推荐) - Emmet 的
$符号支持补零(如span$$$*3→span001~span003),但仅限 HTML/XML 标签内,不适用于纯文本行首编号
InsertNums 插件参数输错就只插一个数?怎么避免
是的。InsertNums: Insert Numbers 对输入格式极其敏感,错一个字符就退化为“全填相同值”或报 Invalid input format。
- 必须且只能是两个整数,用空格或逗号分隔,例如:
1001 1、0,-2 - 不能含小数(
100.5)、单位(100px)、字母(100a)、括号或中文符号 - 只输一个数(如
42)→ 每行都插42,这是设计行为,不是 bug - 负步长合法:
-5 2表示从 -5 开始,每次加 2(-5, -3, -1…)
列选择 + Increment Selection 是最稳的竖向递增方案
当你需要严格对齐某列(比如 CSV 第二列、日志时间戳右侧)、且起始值/步长都要可控时,Increment Selection 是目前唯一不依赖正则、不污染上下文、不跳过空行的方案。
- 必须是矩形列选区:
Ctrl+Alt+鼠标拖拽或Ctrl+Alt+↑/↓,普通行选无效 - 松开后手动输入起始值(如
1001),再Ctrl+Shift+P→Increment Selection - 步长默认为 1;要改步长,得再调一次
Increment Selection: Set Step,没有输入框,靠命令面板输 - 如果列里已有文字(如
ID:),它会把数字追加到末尾,不是覆盖——想覆盖,得先清空那列
真正难的不是选哪个命令,而是光标位置差 1 个字符,整个序列就错位。所有方案都卡在「布局精度」上——列不对齐、缩进不一致、空行混入,结果立刻失准。


















