insert_date 是 sublime text 原生命令,需手动绑定快捷键并正确设置 format 参数;它不支持多光标独立时间、毫秒、时区,且仅作用于首个光标位置。

insert_date 命令能直接插入当前系统时间,但必须手动绑定快捷键且格式参数写对——它不是默认启用的功能,也不是插件专属能力。
为什么按 Ctrl+Alt+T 没反应?
Sublime Text 原生不提供 insert_time 或 insert_datetime 这类命令。你搜不到、按不出,不是配置漏了,是根本不存在。所有「插入当前时间」行为都依赖三个路径之一:insert_date(内置)、insert_snippet(内置变量)、或自定义 Python 插件。别在默认快捷键列表里浪费时间翻找。
用 insert_date 绑定快捷键最轻量
这是 Sublime 自带命令,无需装插件、不依赖 Python 环境,只要 format 字符串合法就能立刻生效:
- 打开 Preferences → Key Bindings,在右侧用户键位文件中添加:
{ "keys": ["ctrl+alt+t"], "command": "insert_date", "args": { "format": "%Y-%m-%d %H:%M:%S" } }
-
format必须用英文半角引号和冒号,"%Y-%m-%d"✅,“%Y-%m-%d”❌ - 常见错写:
%y(两位年份)→ 应该用%Y;%I(12 小时制)→ 日志场景请用%H - 不支持
%f(毫秒)、%z(时区),跨平台时慎用%c或%x - 只作用于首个光标位置:多选 5 行,只有第一行插入时间——这是设计限制,不是 bug
多光标要各自插入「此刻」时间,只能写 Python 插件
如果你选中了 3 行、希望每行都插入触发瞬间的时间(而非同一时刻),insert_date 和 insert_snippet 都做不到。唯一办法是手写插件:
- 保存为
Packages/User/insert_datetime.py - 类名必须是
InsertDatetimeCommand,继承sublime_plugin.TextCommand - 核心逻辑必须遍历
self.view.sel(),且每次调用datetime.now() - 缩进必须严格为 4 空格,错一格就静默失效,控制台也不报错
- 如果需要「完全一致」的时间戳(比如日志批次标记),得在
run()开头只取一次now = datetime.now(),再循环复用
别被「自动插入」插件带偏
像 AutoInsertDate 这类监听 on_pre_save 的插件,会在你保存任何文件时无差别塞入时间戳——包括 .gitignore、package.json、空行注释。它无法按文件类型过滤,也不能跳过已有时间戳的行。调试时连 Ctrl+Z 都难撤销干净。真需要自动化,不如用 snippet + macro 控制触发时机。
insert_snippet 强撑,时间就会停在编辑器启动那一刻。











