多光标是前提,sublime原生命令仅响应多光标而非多行选中;insertnums需严格输入整数参数,补零须列选+increment selection;生成带前缀编号需先统一前缀再插数字。

多光标是硬前提,没它 Insert Sequence 和 Insert Numbers 全静默
Sublime 的原生命令 Insert Sequence 和 Insert Numbers 不响应“选中多行”,只响应“多个光标”。你拖选 10 行再按 Ctrl+Shift+P → Insert Sequence,它只在第一行插一个数(通常是 1),界面无提示、无报错——这不是 bug,是设计逻辑。
必须先布多光标:
-
Ctrl+Shift+L(Windows/Linux)或Cmd+Shift+L(macOS):选中目标行后一键生成行首光标 -
Ctrl+Alt+↑/↓:列式添加光标,适合对齐某列(如 CSV 第二列) -
Ctrl+鼠标左键:手动点选,适合不连续的几行
注意:Ctrl+D 选中相同词再执行,会填重复数字(全插 1),因为 Sublime 把它识别为单次插入动作。
InsertNums 插件参数输错就只插一个数,格式必须严格
装好 InsertNums 后,Ctrl+Shift+P → InsertNums: Insert Numbers 会弹出输入框。它只接受两个整数,用空格或逗号分隔:
- 合法:
1001 1、0,-2、-5 2 - 非法:
100.5(小数)、100px(带单位)、100a(含字母)、100:5(冒号)、中文逗号 - 只输一个数(如
42)→ 每行都插 42,这是明确设计行为
起始值或步长含小数会被截断为整数,比如 100.7 2.3 实际等价于 100 2。
要补零(如 0001 → 0002)不能靠 InsertNums,得用列选 + Increment Selection
InsertNums 和所有原生命令都不支持格式化输出。想生成 0001、0002,必须分两步走:
- 先用
Ctrl+Alt+↑/↓或Ctrl+Alt+鼠标拖拽列选数字所在列(必须是矩形区域) - 松开后手动输入起始值(如
0001) - 再
Ctrl+Shift+P→Increment Selection,它会保持位数递增(0001→0002→0003)
这个方案唯一不依赖正则、不跳过空行、不污染上下文,但前提是列必须对齐且为纯数字列。
带前缀(如 user_1 → user_2)必须拆成两步操作
InsertNums 和 Insert Sequence 都只插纯数字,无法拼接字符串。要生成 user_1、user_2:
- 先
Ctrl+Shift+L选中所有目标行 →Home移光标到行首 → 输入user_ - 光标仍在行首,再运行
InsertNums: Insert Numbers,填1 1
如果前缀长度不一(比如有的行已有 id:,有的没有),就不能直接列选递增,得先统一清理或用正则预处理——这时候就不是编辑器功能问题,而是数据结构本身不规整了。
真正容易被忽略的是:所有递增命令都默认作用于光标当前位置,不会自动跳过空行、注释或缩进;如果你在混排文本里布光标,得自己确认每行光标落点是否一致,否则结果会错位。列选方案最稳,但要求视觉对齐;多光标方案灵活,但布错一个就全偏。











