insertnums插件是sublime text递增编号的事实标准:安装后选中多行,执行命令并输入起始值与步长(如10,2),即可生成等差序列;它不解析原有内容,需确保目标位置干净,且不跳过空行或注释行。

用 Ctrl+Shift+P 调出命令面板,搜 Insert Num 是最快路径
Sublime Text 本身不带原生递增编号功能,但社区插件 InsertNums 几乎是事实标准——它轻量、无依赖、响应快。别去折腾正则替换或写 Python 脚本,那属于“绕远路修自行车”。安装后,选中要填数字的多行(比如 10 行空行或占位符),再执行命令即可。
常见错误现象:Insert Num 命令没出现?说明插件没装,或装了但没启用(重启 Sublime 后首次需手动启用一次)。别在 Package Control 里搜 “number” 或 “auto increment”,准确关键词是 InsertNums(注意大小写和复数)。
- 安装方式:打开
Ctrl+Shift+P→ 输入Package Control: Install Package→ 搜InsertNums→ 回车 - 使用前必须先选中目标行(哪怕只是光标停在每行开头,按
Ctrl+L多次选中也行) - 默认从 1 开始、步长为 1;想改起始值或步长,执行命令后会弹出输入框,直接输
10,2就是“从 10 开始,每次+2”
InsertNums 的步长和偏移逻辑容易被当“加法”误用
它不是对已有数字做加法,而是按位置生成新序列。比如你选中 5 行,输入 100,5,结果就是:100、105、110、115、120 —— 第 n 行 = 起始值 + (n−1) × 步长。这点和 Excel 拖填充柄一致,但和某些正则替换工具的“匹配后自增”逻辑不同。
容易踩的坑:InsertNums 不解析已有内容。如果你在已有数字后面追加(比如想把 item_ 变成 item_1、item_2),得先确保每行末尾是干净的(比如全选 → Ctrl+Shift+P → InsertNums → 输 1,1),否则会叠在旧文本上。
- 想补前缀/后缀?先用
Ctrl+Shift+L进入列编辑模式,把光标全拉到同一列,再统一输前缀,最后再跑InsertNums - 步长支持负数,比如
10,-1生成 10、9、8…;但起始值不能是小数,会截断为整数 - 如果某行被意外缩进或含空格,
InsertNums仍会在行首插入,不是“对齐插入”
不用插件时,Ctrl+Alt+Down 配合列编辑能应急但有限制
纯原生方案只有列编辑 + 手动输入最简序列(如 1 到 5),适合 ≤10 行且步长为 1 的场景。按住 Ctrl+Alt+Down 往下加光标,再逐个敲数字 —— 看似快,实则极易错位或漏行,尤其跨屏滚动后光标会丢失。
性能影响几乎为零,但兼容性差:macOS 是 Cmd+Opt+Down,Linux 可能被桌面环境劫持。而且一旦行数超出手动耐心阈值(比如 >15 行),错误率陡增,返工时间远超装插件的 20 秒。
- 只适用于临时、少量、无规律要求的编号(比如快速标出 A/B/C 测试点)
- 不能跳过空行或注释行;遇到
//或#开头的行,光标照样落下,输完还得删 - 无法回退单步操作,输错一个就得全选重来
别用正则 Find & Replace 搞递增编号
有人试过用 \n 匹配换行再替换为 \n1\n2 之类,这是典型误区。Find & Replace 的替换内容是静态字符串,不支持动态计数。即使开 .+ 模式,也无法让每次替换都“自动+1”。
有变通做法(比如配合 Python 正则回调),但需要开启 Regex → Replace with Python 并写回调函数——这已经超出“快速填充”的范畴,变成写脚本了。对多数人来说,这不是省事,是主动给自己加编译器。
- Sublime 的
Find & Replace不支持$1+1这类运算语法,类似写法只会原样输出 - 第三方正则工具(如 VS Code 的扩展)可能支持,但切换编辑器成本更高
- 真要处理复杂编号逻辑(如按文件名排序后编号),不如导出为 CSV 用 Python/Pandas 处理,再粘回来
真正卡住人的往往不是“怎么开始”,而是选中范围时漏掉首行或末行,或者输步长时把逗号打成中文顿号。插件再快,光标没选对就白搭。










