推荐使用 file header 插件(yozi.vscode-fileheader),配置 fileheader.customtemplates 按语言定义模板,设 fileheader.author 为姓名,${datetime} 获取完整时间,${update} 需手动触发更新,python 模板须顶格书写避免缩进错乱。

如何用 VSCode 自动插入带作者和时间的文件头注释
VSCode 本身不内置文件头模板功能,必须依赖插件或配置 fileheader 类扩展。最稳定、适配主流语言(如 JavaScript、Python、Go、TypeScript)的是 Document This 或更专注的 vscode-fileheader ——但注意:后者已停止维护,推荐改用 Auto Rename Tag 同作者开发的 File Header(ID:yozi.vscode-fileheader),它支持动态变量(如 ${author}、${date}、${update})且无 Node.js 运行时依赖。
配置 fileheader.customTemplates 实现多语言差异化模板
不同语言注释语法不同(如 // vs # vs /* */),硬写死一个模板会出错。必须为每种语言单独定义 fileheader.customTemplates,否则新建 .py 文件时可能插入 JS 风格的 // 注释。
- 在 VSCode 设置(
settings.json)中添加语言键名,例如"fileheader.customTemplates": { "python": { ... }, "javascript": { ... } } -
${date}默认格式是YYYY-MM-DD;若需含时间,改用${datetime}(输出类似2024-05-22 14:30:45) - 作者名不会自动读取 Git 配置,需手动设
"fileheader.author": "Your Name",否则生成为空 - 避免在模板里写死邮箱——Git 提交邮箱常变,建议只留姓名,或用
${email}(需额外配置fileheader.email)
为什么保存时没触发更新时间(${update})?
${update} 不是“每次保存都刷新”,而是仅在文件**首次创建时写入 ${date},后续手动调用命令 File Header: Update File Header 才会覆盖 ${update} 字段。这是设计行为,不是 bug。
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
- 快捷键默认未绑定,需进
Keyboard Shortcuts搜索该命令并设置(如Ctrl+Alt+U) - 若想保存即更新,得禁用插件默认行为,改用
editor.codeActionsOnSave+ 自定义脚本,但会失去跨语言兼容性 -
${update}值依赖上一次手动更新时间,不是 Git commit 时间,别和git log -1 --format="%ad"混淆
Python 文件头生成后缩进错乱?检查 editor.insertSpaces 和模板换行符
Python 对缩进敏感,而文件头模板若以空格开头、或换行符是 \r\n(Windows)但编辑器设为 \n(Unix),会导致首行注释后所有代码整体右移。
- 确保模板字符串每行**顶格写**,不要加前置空格(缩进由插件根据当前语言规则自动补)
- 检查
"editor.insertSpaces": true是否开启,关闭它可能导致tab插入后与模板空格混用 - 在
settings.json中显式指定"files.eol": "\n",避免跨平台换行符污染 - 如果用了 Prettier,它可能在保存时重排整个文件——把文件头当成普通代码处理,建议在
.prettierrc中加"rangeStart": 1跳过第一行
真正麻烦的不是配置,而是团队协作时每个人 fileheader.author 不一致,导致同一仓库出现 “Zhang San”、“zhangsan”、“zhang_san” 多种写法。最好统一从 Git config 读取:git config --global user.name,再用 shell 脚本注入到 VSCode settings ——但这需要每人本地执行,没法靠配置文件同步。










