VSCode可通过原生代码片段+快捷键在光标处插入实时当前时间:先创建global snippets(time.json)定义时间变量,再通过keybinding绑定editor.action.insertSnippet命令调用,无需插件、跨平台稳定。

VSCode 怎么在光标处插入当前时间(不装插件)
VSCode 原生不支持直接绑定「插入时间」快捷键,但可以通过 editor.action.insertSnippet + 自定义代码片段实现,稳定、无依赖、跨平台可用。
操作步骤:
- 打开命令面板(
Ctrl+Shift+P/Cmd+Shift+P),输入并选择Preferences: Configure User Snippets - 选择
New Global Snippets file...,命名为time.json - 填入以下内容(注意:日期格式用的是 VSCode 内置变量,不是 JavaScript):
{
"Insert current time (HH:mm:ss)": {
"prefix": "nowtime",
"body": "${CURRENT_HOUR}:${CURRENT_MINUTE}:${CURRENT_SECOND}",
"description": "Insert formatted time at cursor"
},
"Insert date-time (YYYY-MM-DD HH:mm)": {
"prefix": "nowdt",
"body": "${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE} ${CURRENT_HOUR}:${CURRENT_MINUTE}",
"description": "Insert date and time"
}
}
保存后,在任意编辑器中输入 nowtime + Tab,或 nowdt + Tab 即可展开。想改快捷键?继续往下看。
给时间插入动作绑定快捷键(Keybinding)
不能直接为 snippet 绑定快捷键,但可以绑定到 editor.action.insertSnippet 命令,并传参指定 snippet。
打开键盘快捷键设置(Ctrl+K Ctrl+S),点击右上角「打开键盘快捷方式(JSON)」图标,添加如下条目:
[
{
"key": "ctrl+alt+t",
"command": "editor.action.insertSnippet",
"args": {
"name": "Insert current time (HH:mm:ss)"
},
"when": "editorTextFocus"
}
]
关键点:
-
"name"必须和 snippets 文件里定义的键名(即"Insert current time (HH:mm:ss)")完全一致,大小写、空格都不能错 -
"when": "editorTextFocus"确保只在编辑器有焦点时生效,避免在搜索框/终端里误触发 - 如果提示「command not found」,大概率是 snippet 名字拼错了,或者 JSON 格式有逗号遗漏
为什么不用宏扩展(如 macros、multi-command)
很多教程推荐装 macros 或 multi-command 插件来“组合动作”,比如先按快捷键、再触发 snippet —— 实际上多此一举,且引入额外失败点。
问题包括:
- 插件停更(如老版
macros已不兼容 VSCode 1.80+) - 宏执行顺序不可靠:某些场景下
editor.action.insertSnippet在宏里不响应 - 无法在远程开发(SSH/Dev Container)中保证插件同步启用
- 时间变量在宏中无法动态刷新,容易插出旧时间
原生 snippet + keybinding 是唯一能保证每次触发都取实时系统时间的方式。
日志打点常用时间格式建议
写日志时,光有时间不够,还得带上下文。推荐两个实用组合:
- 「带毫秒的完整时间戳」:用于排查性能问题
"${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE}T${CURRENT_HOUR}:${CURRENT_MINUTE}:${CURRENT_SECOND}.${CURRENT_MILLISECOND}Z" - 「相对简洁的带前缀日志行」:
// [${CURRENT_HOUR}:${CURRENT_MINUTE}] TODO:—— 输入logt+Tab就能快速补全,适合边调试边记
注意:CURRENT_MILLISECOND 在部分旧版 VSCode(CURRENT_SECOND。
时间变量本身没有时区偏移控制,Z 是硬编码的 UTC 标识;如需本地时区,只能靠插件或外部脚本,原生方案做不到。











