sublime如何快速将数字序列递增或递减?(列表/ID生成)

发布时间 - 2026-01-21 00:00:00    点击率:
Sublime Text 的 Insert Numbers 命令可快速生成递增/递减数字序列,仅作用于多光标位置,默认从0开始、步长为1,支持通过自定义快捷键设置起始值和步长,不修改现有数字,适用于生成ID、序号等新序列。

Ctrl+Shift+P 调出命令面板,输入 Insert Numbers 是最快路径

Sublime Text 自带的 Insert Numbers 命令(无需插件)专为生成递增/递减数字序列设计,比手动输入、正则替换或写脚本更直接。它只作用于当前光标所在行的多个选区(即多光标),不依赖文件内容结构,也不需要提前选中数字——你只需把光标放在要插入数字的位置即可。

常见错误是试图先选中已有数字再运行该命令:它不会修改现有数字,而是「在每个光标位置插入新数字」。所以适合生成 ID 列表、序号、索引等从零开始的新序列。

  • 确保已启用多光标:按住 Ctrl(Windows/Linux)或 Cmd(macOS),逐个点击目标行首/行尾位置;或用 Ctrl+Click 框选多个光标点
  • 执行 Insert Numbers 后,默认从 0 开始,步长为 1;如需从 1 开始,可在命令面板里输入 Insert Numbers: Start from 1
  • 若想递减,先用多光标选好位置,再运行 Insert Numbers,随后立即按 Ctrl+Z 撤销一次,再手动把第一个数字改成终点值(比如 100),然后用 Ctrl+D 选中它,再 Ctrl+Shift+L 拆成多光标,最后按 键降序填充(此法依赖 Selection → Expand Selection to Line 配合方向键,非原生命令但稳定)

Insert Numbers 的起始值和步长在哪改?

Sublime Text 没有图形化设置面板调整 Insert Numbers 的参数,所有配置都通过命令参数或快捷键绑定实现。默认行为固定,但你可以自定义快捷键来触发不同参数组合:

  • 打开 Preferences → Key Bindings,在右侧用户键绑定中添加:
[
    {
        "keys": ["ctrl+alt+n"],
        "command": "insert_numbers",
        "args": {"start": 1, "step": 1}
    },
    {
        "keys": ["ctrl+alt+d"],
        "command": "insert_numbers",
        "args": {"start": 100, "step": -1}
    }
]

保存后,Ctrl+Alt+N 插入 1,2,3...Ctrl+Alt+D 插入 100,99,98...。注意:step 为负数时,数字自动递减,无需额外操作。

容易忽略的是:如果多光标不在同一列(比如有的在行首、有的在行中),Insert Numbers 仍会插入,但可能破坏对齐。建议先统一光标位置(例如全选行首:按 Ctrl+Shift+L 选中所有行,再按 Home 移到行首)。

遇到「重复插入」「跳号」或「不生效」怎么办?

这些不是 Bug,而是多光标状态或命令触发时机的问题:

  • 重复插入:多光标中有重叠区域(比如两个光标在同一行且距离过近),导致同一位置被多次写入。解决方法是用 Ctrl+Shift+P 输入 Select → Select All 清空当前选区,再重新打多光标
  • 跳号:比如期望 1,2,3 却得到 1,3,5,说明之前运行过一次 Insert Numbers 后又手动改了某个数字,再运行时 Sub

    lime 会基于「当前光标所在行的最后一个数字」推算步长。此时应全部撤销(Ctrl+Z × 多次),重置光标再试
  • 不生效:最常见原因是没激活多光标——单光标下运行该命令只会插入一个数字(0)。确认右下角状态栏是否显示 x selections(如 5 selections

替代方案:正则替换 + 计算表达式(适合已有文本改造)

当你要给已有列表加序号(比如把 apple 变成 1. apple),Insert Numbers 不适用,得用正则替换配合 transform 功能:

  • 打开替换面板(Ctrl+H),勾选 Regular Expression
  • 查找:^(匹配每行开头)
  • 替换:\n(留空)→ 不对,这里要用 Sublime 的 transform 表达式:实际填 $0\${1} 不行;正确做法是启用 Tools → Transform → Increment Number,但它只对已存在数字有效
  • 更可靠的是:先用 Ctrl+Shift+L 选中所有行首,再运行 Insert Numbers,再输入 . 和空格,最后用 Ctrl+Shift+P 运行 Sort Lines(如果顺序乱了)

真正需要动态计算的场景(如按公式生成 id="item-001"),还是推荐用 Python 或 JS 写个一次性脚本粘贴进 Sublime 控制台(Ctrl+`),而不是硬套编辑器功能。编辑器的数字插入能力,本质是「批量占位符填充」,不是「通用序列引擎」。


# linux  # python  # sublime  # js  # windows  # app  # mac  # macos  # win  # apple  # 解决方法 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: javascript中的try catch异常捕获机制用法分析  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  详解CentOS6.5 安装 MySQL5.1.71的方法  如何为不同团队 ID 动态生成多个“认领值班”按钮  html如何与html链接_实现多个HTML页面互相链接【互相】  如何在IIS7中新建站点?详细步骤解析  油猴 教程,油猴搜脚本为什么会网页无法显示?  如何制作一个表白网站视频,关于勇敢表白的小标题?  Laravel如何为API编写文档_Laravel API文档生成与维护方法  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  javascript中对象的定义、使用以及对象和原型链操作小结  JavaScript如何实现路由_前端路由原理是什么  Laravel观察者模式如何使用_Laravel Model Observer配置  Thinkphp 中 distinct 的用法解析  简单实现Android文件上传  Python面向对象测试方法_mock解析【教程】  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  Laravel怎么使用artisan命令缓存配置和视图  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  简单实现Android验证码  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  三星、SK海力士获美批准:可向中国出口芯片制造设备  js实现获取鼠标当前的位置  用yum安装MySQLdb模块的步骤方法  创业网站制作流程,创业网站可靠吗?  中国移动官方网站首页入口 中国移动官网网页登录  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  Bootstrap CSS布局之列表  昵图网官方站入口 昵图网素材图库官网入口  高性能网站服务器部署指南:稳定运行与安全配置优化方案  如何在香港免费服务器上快速搭建网站?  Laravel如何实现多对多模型关联?(Eloquent教程)  清除minerd进程的简单方法  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  Laravel如何处理CORS跨域请求?(配置示例)  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  如何用花生壳三步快速搭建专属网站?  如何快速搭建FTP站点实现文件共享?  javascript事件捕获机制【深入分析IE和DOM中的事件模型】