sublime text内置insert num命令可快速为多行添加递增编号,无需插件;若需自定义起始值、步长或格式,推荐用ctrl+h配合正则表达式(如${1:+1});enumerate插件存在兼容性与稳定性问题,建议卸载;少量条目时可用ctrl+shift+l加↑/↓键多光标联动调整数字。

用 Ctrl+Shift+P 调出命令面板,搜 Insert Num 就行
Sublime Text 自带的 Insert Num 命令能一行一个自动递增数字,比手敲快得多,也比写正则替换更稳。它不依赖插件,开箱即用,但很多人根本没注意到这个隐藏功能。
操作很简单:选中你要编号的多行(每行一个条目)→ 按 Ctrl+Shift+P → 输入 Insert Num → 回车。默认从 1 开始,每次加 1。
- 如果光标在空行上单独执行,它只给当前行插入
1;必须先选中多行才触发批量编号 - 编号会插在行首,不会动原有内容;如果行首有空格或缩进,数字会紧贴着它们写,不是“顶格”
- 不支持自定义起始值或步长——想从 0 开始?得手动改第一行再选中剩余行重跑一次
想从 0 开始、跳着编号、或加前缀?得用 Find & Replace 配正则
原生命令不够用时,Find & Replace(Ctrl+H)配合正则表达式是更灵活的选择,尤其适合带格式的编号场景,比如 1. item 或 [001] xxx。
关键点在于启用正则模式(点右下角 .* 图标),然后用 ^ 匹配行首,\n 控制换行逻辑。但注意:Sublime 的替换框不支持动态计算,所以得靠“多步操作”模拟递增。
- 先用
^替换为1.(给所有行统一加前缀和起始数) - 再用
(\d+)\. (?=.*\n)匹配行末带换行的数字,替换为${1:+1}.—— 这个${1:+1}是 Sublime 特有的算术替换语法,表示“捕获组1的值加1” - 但该语法仅在 Sublime Text 4094+ 版本支持;老版本只能靠插件或外部工具
装了 Enumerate 插件反而容易乱序或崩掉
Enumerate 是社区里常被推荐的编号插件,但它有几个硬伤:不兼容 Sublime Text 4 的新 API、对中文混排支持差、且在大文件里频繁触发会导致卡顿甚至崩溃。
如果你已经装了,建议直接卸载。它的核心功能(如自定义起始/步长/格式)完全可以用上面提到的正则方案覆盖,还更可控。
- 插件命令叫
enumerate,但调用后经常把空行也编上号,还得手动删 - 对 Tab 缩进识别不稳定,有时编号会插到缩进中间,破坏对齐
- 更新日志里明确写了 “not maintained for ST4”,别赌兼容性
真正省心的做法:用 Ctrl+Shift+L + ↑/↓ 手动调数字
当列表就十几二十行,又不想碰正则,最顺手的方式其实是“半自动”:先用 Ctrl+Shift+L 把光标同时打到每行开头,再按 ↑ 或 ↓ 键快速调整数字——Sublime 支持多光标联动输入,输一个数,所有光标位置一起变。
这招适合需要非线性编号(比如 1, 1.1, 1.2, 2, 2.1…)或穿插文字的场景,比任何自动化都直观。
- 先手动输好第一个数字(比如
1),光标停在后面 - 按
Ctrl+Shift+L,光标会逐行往下跳,停在每行开头 - 此时直接按
↑(向上箭头)会把所有光标位置的数字 +1;↓则 -1 - 如果某行要跳过不改,按
Esc退出多光标,再用方向键移过去单独处理










