vscode 默认不支持日期时间快捷键,需通过扩展或自定义 snippet + keybinding 实现:auto insert date time 扩展最便捷但格式固定;自定义 snippet 最灵活,支持 $current_year 等内置变量;task 方案跨平台麻烦且性能差。

VSCode 默认不支持日期时间快捷键,必须靠扩展或自定义命令
VSCode 自身没有内置 Insert Date 或类似快捷键,直接按 Ctrl+Shift+P 搜也找不到原生命令。想“一键插入”,得自己搭——要么装扩展,要么写 snippet + keybinding,二者效果和可控性差别挺大。
用 Auto Insert Date Time 扩展最省事,但格式固定
搜 “Auto Insert Date Time” 安装后,默认绑定 Ctrl+Alt+D(Windows/Linux)或 Cmd+Alt+D(macOS),按下就插如 2024-05-21 14:32:05 这种格式。它不读系统 locale,也不响应你改设置里的日期格式,所有格式都硬编码在扩展里。
- 支持的快捷键只有
Ctrl+Alt+D(完整时间)、Ctrl+Alt+T(仅时间)、Ctrl+Alt+Y(仅年份)三个,不能增删 - 格式无法通过 settings.json 调整,想换
21/05/2024或带星期,得换扩展或手动改源码(不推荐) - 插入位置是光标所在处,不自动加换行或空格,适合写日志开头,不适合模板填空
用自定义 snippet + keybinding 最灵活,但要写 JSON
真正可控的方式是建一个 snippet,再绑定快捷键。比如在用户 snippets 中新建 javascript.json(或全局 snippets/code-snippets.json),加这段:
"Insert current date (YYYY-MM-DD)": {
"prefix": "date",
"body": ["$CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE"]
}
然后在 keybindings.json 里加:
[
{
"key": "ctrl+shift+d",
"command": "editor.action.insertSnippet",
"args": {
"name": "Insert current date (YYYY-MM-DD)"
}
}
]
-
$CURRENT_YEAR、$CURRENT_MONTH、$CURRENT_DATE是 VSCode 内置变量,不用额外插件 - 支持组合:比如
"$CURRENT_YEAR.$CURRENT_MONTH.$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE" - 注意:snippet 名称必须完全匹配
args.name,大小写、空格、括号都不能错,否则快捷键无效 - 如果同时有多个同名 snippet(比如不同语言下都定义了),VSCode 会优先用当前文件类型对应的,没匹配则用全局
用 Task + shell 命令可行但跨平台麻烦
有人试过用 tasks.json 调 date 命令再输出到编辑器,但问题明显:
- macOS / Linux 用
date "+%Y-%m-%d %H:%M:%S",Windows PowerShell 得写Get-Date -Format "yyyy-MM-dd HH:mm:ss",没法一份配置通用 - Task 输出默认进终端,要进编辑器得配合
type或剪贴板工具(如pbcopy/clip),链路长、易失败 - 每次触发都要开子进程,比 snippet 慢一拍,尤其在远程开发(SSH/WSL)时延迟更明显
除非你在特定环境里重度依赖 shell 格式化逻辑,否则没必要走这条路。











