可用python脚本在sublime text中插入当前时间:新建insert_timestamp.py文件,定义inserttimestampcommand类,用datetime.strftime控制格式,绑定ctrl+shift+t快捷键即可。

怎么用 Python 脚本在 Sublime Text 里插入当前时间
Sublime Text 本身不带“插入时间”快捷键,但支持通过 sublime_plugin.TextCommand 写轻量脚本实现。关键不是写多复杂的插件,而是让脚本能被快速调用——比如绑定到 Ctrl+Shift+T(Windows/Linux)或 Cmd+Shift+T(macOS)。
实操建议:
- 打开 Sublime Text 的
Package/User/目录(菜单 → Preferences → Browse Packages → 进入 User 文件夹) - 新建文件,命名为
insert_timestamp.py,内容如下:
import sublime
import sublime_plugin
import datetime
class InsertTimestampCommand(sublime_plugin.TextCommand):
def run(self, edit):
now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
for region in self.view.sel():
self.view.replace(edit, region, now)
保存后,重启 Sublime 或按 Ctrl+Shift+P 输入 Reload Plugin 刷新即可生效。
如何自定义时间格式(比如只插日期、加毫秒、用中文)
脚本里的 strftime 是核心控制点,改它就能换格式。不同场景下容易踩的坑是:误用 %l(小写 L)代替 %I(12 小时制),或漏掉空格导致格式粘连。
常见格式示例:
- 仅日期:
"%Y年%m月%d日"→2024年06月15日 - 带毫秒:
"%Y-%m-%d %H:%M:%S.%f"[:23](截断多余微秒位) - ISO 8601 标准:
"%Y-%m-%dT%H:%M:%S%z"(注意时区需手动补,%z在 Windows 上可能为空)
为什么快捷键没反应?检查这三处
写完脚本却按快捷键没输出,大概率卡在这几个地方:
- 文件名必须是
xxx.py,且类名必须以Command结尾(如InsertTimestampCommand),否则 Sublime 不识别为命令 - 快捷键绑定文件
Preferences → Key Bindings里要加这一行:{"keys": ["ctrl+shift+t"], "command": "insert_timestamp"}(注意 command 名是类名转蛇形小写,去掉Command后缀) - 如果光标没选中任何内容,脚本默认在光标位置插入;但如果已有选区,会**替换选区内容**——这点常被忽略,导致“插了但看不见”,其实是把选中的文字覆盖掉了
要不要用 Package Control 装现成插件?
有现成插件如 InsertDate,但它的配置项藏得深、更新慢、不支持动态格式模板。自己写脚本的好处是:逻辑透明、改一行就生效、不依赖外部包。唯一复杂点是——如果你需要根据光标上下文自动判断格式(比如在 Markdown 表格里插 ISO 时间,在日志里插带毫秒),就得扩展 self.view.syntax() 或正则检测当前行内容,那才真正开始绕。











