Sublime怎么插入时间 Sublime怎么快速输入当前日期【快捷】

3次阅读

最轻量稳当的方案是用sublime原生snippet,通过${current_year}等变量拼出标准时间格式,无需插件、不依赖python版本,在st3/st4行为一致。

Sublime怎么插入时间 Sublime怎么快速输入当前日期【快捷】

用 snippet 插入时间最轻量、最稳

不需要装插件,不依赖 Python 版本,Sublime 原生支持的 ${CURRENT_YEAR}${CURRENT_MONTH} 等变量就能拼出标准格式,比如 2026-02-28 07:57:32 或 ISO 格式 2026-02-28T07:57:32。它在 ST3 和 ST4 下行为完全一致,不会因升级突然失效。

  • 菜单栏点 Tools → Developer → New Snippet…,粘贴以下内容并保存为 Packages/User/insert_dt.sublime-snippet
  • <snippet>   <content><![CDATA[${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_date} ${CURRENT_HOUR}:${CURRENT_MINUTE}:${CURRENT_SECOND}]]></content>   <tabTrigger>dt</tabTrigger>   <scope>text.plain, source.log, text.html</scope>   <description>Insert current datetime</description> </snippet>
  • 在编辑器中输入 dt 后按 Tab,立刻插入当前时间;可自由增删 scope 控制生效范围(如只对 .log 文件生效)
  • windows 用户别用 $(date +...) —— 系统没 date 命令,会留空或报错;${CURRENT_XXX} 是唯一跨平台原生解法

用 Python 插件实现毫秒/时区/多光标支持

当需要 [2026-02-28 07:57:32.123] 这类带毫秒的时间戳,或要自动适配本地时区、同时在多个光标位置插入不同时间(比如日志调试),就必须写插件。snippet 和 InsertDate 都做不到毫秒级精度。

  • 新建文件 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()         timestamp = now.strftime('[%Y-%m-%d %H:%M:%S.%f]')[:23]         for region in self.view.sel():             self.view.replace(edit, region, timestamp)
  • Preferences → Key Bindings 中添加快捷键:{"keys": ["ctrl+alt+t"], "command": "insert_timestamp"}
  • 注意:必须遍历 self.view.sel(),否则只改第一个光标;若用 time.time() 代替 datetime.now(),可能因系统时区未校准导致慢 8 小时

别碰「自动插入时间」类插件

AutoInsertDate 或某些标榜“保存即加时间”的插件,监听的是 on_pre_save 事件,一旦启用,它会在你保存任何文件时无差别注入时间戳——包括 .gitignorepackage.json、甚至空行。这不是辅助,是污染。

  • 无法按文件类型过滤(比如只想对 .md 生效)
  • 无法跳过已有时间戳的行,容易重复插入
  • 调试困难:Ctrl+Z 可能撤销不干净,也看不出是哪个插件动的手
  • sublime text 4 中很多老插件会抛 AttributeError: module 'datetime' has no attribute 'strptime',因为内置 Python 升级后路径变了,修起来费时又易复发

InsertDate 插件还能用吗?看场景

如果只是偶尔写笔记、临时记日志,且环境可控(比如个人 macos/linux 机器),InsertDate 仍是最快上手的选择:命令面板搜 “Insert Date”,选格式,回车就完事。但别指望它在公司统一镜像或 CI 构建机上稳定运行。

  • 默认快捷键 Ctrl+Alt+T(Win/Linux)或 Cmd+Alt+T(macOS)
  • 自定义格式要改 Preferences → Package Settings → InsertDate → Settings,加一行如 "log": "%Y-%m-%d_%H-%M-%S"
  • 它不自动刷新,每次触发都是「此刻」,这点和 snippet、Python 插件一致
  • 但它依赖 Python 运行时,ST4 下部分用户遇到 strptime 报错,需手动改源码——而 snippet 完全没这问题

真正高频插入时间戳,核心就一条:**要确定性,不要自动化**。时间戳是人工标记点,不是流水线工序。你按一次键,它就插一次,不多不少,不偏不倚。

text=ZqhQzanResources