insert numbers 命令只在多光标位置插入数字,非选中行自动编号;需先用 ctrl+shift+l 拆分光标并统一移至行首,否则插入错位;默认从 0 开始、步长为 1,支持 start from 1 选项;insertnums 插件仅接受两个整数(空格或逗号分隔),不解析已有内容,需目标位置干净;零填充需手动列选+increment selection;insert enumerated lines 格式固定,insert sequence 可设起始值和步长但同样依赖光标对齐。

Insert Numbers 命令为什么只插一个数?
它只响应多光标位置,不是“选中多行就自动编号”。你拖选10行再执行 Insert Numbers,它只在第一行光标处插一个数字(通常是 0)。
必须先创建多光标:按 Ctrl+Shift+L(Windows/Linux)或 Cmd+Shift+L(macOS)把每行拆成独立光标,再统一按 Home 移到行首;或者按住 Ctrl(Cmd)+ 鼠标左键逐个点行首。
光标列不对齐会导致插入错位:比如有的光标在缩进里、有的在文本中间,数字就会“飘”在不同位置,看着像乱序。
默认从 0 开始、步长为 1;想从 1 开始,得在命令面板里输 Insert Numbers: Start from 1。
InsertNums 插件参数怎么填才不失败?
它只接受两个整数,用空格或逗号分隔。填 100 5 或 100,5 都行;填 100:5、100.5、100px 或漏掉第二个数,它会静默失败——只在第一个光标插一个数,不报错也不提醒。
InsertNums 不解析已有内容,所以目标位置必须干净:如果前面有 ID:,它不会覆盖,而是追加成 ID:100,得先删掉再操作。
只输一个整数(如 42),它会把 42 填到每一行——这是设计行为,不是 bug。
支持负步长:100 -1 生成 100、99、98…… 注意负号前要有空格。
起始值或步长含小数(如 100.5 1)会被截断为 100,步长同理。
怎么生成带前导零的序列(比如 0001、0002)?
Insert Numbers 和 InsertNums 都做不到自动补零。零填充必须手动打底:先列选一列空白位(Ctrl+Alt+↓ 竖向拖选),全输 0001,再调 Increment Selection 命令递增。
列选必须严格对齐且为空白:如果列里已有字符(如 ID:),插件会在末尾追加数字,不是覆盖;要覆盖就得先清空那列。
零填充一旦开始就不能中途改位数:从 0001 到 0009 没问题,但到 0010 时会变成 10——除非你一开始打的是 0010。
想拼前缀(如 user_0001),得分两步:Ctrl+Shift+L 选中所有行 → Home 移到行首 → 输入 user_ → 再用 InsertNums 插数字部分。
原生 Insert Enumerated Lines 和 Insert Sequence 有什么区别?
Insert Enumerated Lines 是 Sublime 自带功能,格式固定为 1.、2.,不能设起始值或步长;适合快速加带点编号,但不适合模拟主键 ID。
Insert Sequence 默认从 1 开始、步长为 1,执行后会弹出输入框,可填 10,5 表示从 10 开始每次加 5;但它也只作用于多光标,光标不对齐照样乱插。
两者都不支持零填充,也不拼接字符串;真正灵活的批量 ID 生成,还是得靠 InsertNums + 手动列选 + 清空前置内容这套组合动作。
最容易被忽略的细节是:所有这些命令都依赖光标位置干净、对齐、无干扰字符——哪怕行首多一个空格,数字就可能贴着它写,而不是顶格。











