sublime text 中用原生 insert sequence 命令可快速插入递增数字,但需先通过 ctrl+鼠标左键或 ctrl+shift+l 设置多行光标,否则无效;默认起始1、步长1,支持输入框自定义;不支持格式化(如001),需正则替换补零。

Sublime Text 里怎么快速插入递增数字(比如 1, 2, 3…)
直接用 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)调出命令面板,输入 Insert Sequence,选中它就行——这是 Sublime Text 原生支持的功能,不需要装插件。
但注意:Insert Sequence 默认只在多行光标(即多选)时生效。如果你只在一个位置按,它啥也不干,也不会报错,容易以为功能坏了。
- 先手动创建多行:比如按住
Ctrl(或Cmd)+ 鼠标左键,在每行开头点一下,形成多个光标 - 再执行
Insert Sequence,它会从第一行开始填1,第二行填2,依此类推 - 默认起始值是
1,步长是1;想改的话,执行命令后会弹出输入框,可填10,5表示从 10 开始、每次加 5
为什么 Insert Sequence 有时不递增,只插重复数字
常见原因是光标没对齐——比如你在第 1 行末尾、第 2 行中间、第 3 行开头各点了一个光标,Insert Sequence 仍会执行,但它只管“第几个光标”,不管“在哪一列”,所以看起来像乱序或重复。
更隐蔽的问题是:你用了 Ctrl+D 多次选中相同文本,再按 Insert Sequence,结果所有光标位置都插了同一个起始值(比如全插了 1),因为 Sublime 把这当成“单次插入”,不是“序列插入”场景。
- 务必用
Ctrl+鼠标左键或Ctrl+Shift+L(选中多行后拆分成行光标)来布设光标 - 避免用
Ctrl+D选中文字后再触发,那属于“替换”逻辑,不是“序列插入”逻辑 - 如果已经误操作,按
Ctrl+Z撤销,重新布光标
Input Sequence 插件和原生 Insert Sequence 的区别
很多人搜到的 Input Sequence 是第三方插件(GitHub 上叫 sublime-input-sequence),它确实能实现更灵活的序列,比如支持表达式 i*2+1,但代价是:要手动安装、配置、甚至写 Python 表达式。
而原生 Insert Sequence 足够应付 90% 场景:编号列表、表格序号、批量重命名前缀等。除非你要生成 user_001、user_002 这种带格式的序列,否则没必要引入额外复杂度。
- 原生命令路径:
Tools → Insert → Insert Sequence -
Input Sequence插件需通过 Package Control 安装,且默认快捷键冲突(常被覆盖),得手动绑定 - 插件支持
start, step, format,比如填1,1,user_{:03d},但格式字符串语法容易写错,报错信息是ValueError: Unknown format code 'd' for object of type 'str'
生成带前导零的序列(如 001, 002, 003)怎么做
原生 Insert Sequence 不支持格式化输出,但有个绕过方法:先插入纯数字,再用正则替换补零。
比如你已插入 1 到 10,想变 001–010,就用 Ctrl+H 打开替换,勾上 Regular Expression,查找 ^(\d)$,替换为 00$1;再查 ^(\d\d)$,替换为 0$1。两步搞定。
- 别试图在
Insert Sequence输入框里写{:03d}——它不识别 Python 格式语法 - 如果行数很多(比如上千),建议用插件,但日常十几二十行,手动替换更快也更可控
- 注意替换范围:确保只选中你要改的那些数字行,避免误伤其他数字










