Sublime Text 可用内置 insert_date 命令插入当前日期,需手动绑定快捷键并正确配置 format 参数(如 "%Y-%m-%d"),避免中文标点、不支持格式符及系统热键冲突;跨平台推荐使用 ${year}-${month}-${day} 等内置变量而非 strftime。

Sublime Text 怎么用快捷键插入当前日期
直接用 sublime_text 自带的命令就能实现,不需要装插件。关键在于调用 insert_date 命令——它默认没绑定快捷键,得自己配。
常见错误是去搜“日期插件”,结果装了 InsertDate 这类第三方包,反而和内置命令冲突,或者日期格式固定死、没法改。
- 打开
Preferences → Key Bindings - 在右侧用户键位文件里加一行(比如 Ctrl+Shift+D):
[{"keys": ["ctrl+shift+d"], "command": "insert_date", "args": {"format": "%Y-%m-%d"}}] -
format参数用的是 Python 的strftime语法,%Y-%m-%d %H:%M就是「2024-06-15 14:32」 - Windows 下别用
ctrl+alt+d这类系统级热键,容易被拦截
为什么 insert_date 有时不生效或格式错乱
不是 Sublime 坏了,大概率是 format 字符串里混进了中文标点、全角空格,或者用了不支持的格式符(比如 %f 微秒在旧版 Sublime 会报错)。
典型现象:光标不动、啥也不输出;或只输出一串 %Y 文字本身。
- 确保所有引号是英文半角,
"%Y-%m-%d"✅,“%Y-%m-%d”❌ - 避免用
%c、%x这类依赖本地 locale 的格式符,跨系统可能出错 - 如果想插入时间戳(毫秒级),得用插件(如
TimeStamp),insert_date不支持
想每次新建文件都自动填日期,能实现吗
不能靠 insert_date 命令自动触发,但可以靠「片段(snippet)+ 快捷触发」模拟这个效果。
本质是把日期生成逻辑从“运行时命令”挪到“静态模板”,牺牲一点实时性,换来确定性。
- 新建片段:
Tools → Developer → New Snippet… - 填内容:
<![CDATA[<snippet> <content><![CDATA[// Created: ${1:$(date +%Y-%m-%d)} $0]]></content> <tabTrigger>datehead</tabTrigger> <scope>source.python, text.plain</scope> </snippet>]]> - 保存为
Packages/User/datehead.sublime-snippet,输入datehead+ Tab 就展开 - 注意:
$(date +...)是 Shell 命令,仅 macOS/Linux 有效;Windows 需换用$CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE
Mac 和 Windows 的日期格式兼容要注意什么
同一份键位配置,放到不同系统上可能失效,因为 Sublime 对 strftime 的底层支持有细微差异。
最稳妥的做法:用 Sublime 提供的内置变量,而不是硬写 strftime 格式串。
- Mac/Linux 推荐:
"%Y-%m-%d %H:%M" - Windows 推荐:改用变量
"${year}-${month}-${day} ${hour}:${minute}"(这些变量在 Sublime 4+ 支持) - 如果必须用
strftime,Windows 上避开%-d(去零前缀),它不识别 - 跨平台共享配置时,优先选
${year}类变量,比strftime更可靠
strftime 还是 Sublime 变量。










