vscode原生不支持一键生成license文件,必须依赖插件或命令行工具;最稳方案是安装bradlc.vscode-license-generator插件,绑定快捷键(如ctrl+alt+l),在项目根目录右键选择“generate license”,填写协议、作者和年份即可生成标准license文件(无后缀,utf-8无bom)。

VSCode 原生不支持快捷键一键生成 LICENSE 文件——所有“点一下就出来”的方案,都依赖外部工具或插件,且必须手动验证三处细节,否则 GitHub 根本不认。
用 bradlc.vscode-license-generator 插件配快捷键
这是目前最稳的路径:装对插件 + 绑定命令 + 右键触发。别搜“license generator”这种泛关键词,直接在扩展市场搜 bradlc.vscode-license-generator(名字带 tailwind 的是假货)。
- 安装后,插件会注册命令
license-generator.generate,可在命令面板(Ctrl+Shift+P)里搜到 - 打开
keybindings.json,加一条绑定,比如:[{"key": "ctrl+alt+l", "command": "license-generator.generate"}] - 保存后,在项目根目录右键 → “Generate License”,选协议、填作者和年份即可生成标准 LICENSE(注意:文件名就是
LICENSE,无后缀) - 插件不会覆盖已有 LICENSE,旧文件得先删;若项目是子目录结构,务必确保右键位置是仓库根目录
用 npx license 命令 + 自定义快捷键
适合已有 Node.js 环境、不想装插件的场景。但 Windows 用户容易卡在 command not found,本质是 npm 全局 bin 路径没进系统 PATH,硬调快捷键反而更麻烦。
- 命令本身是调用
spdx-license-generator,比手写少漏关键段落(比如 MIT 里必须有的 “permission notice”) - 想绑定快捷键,得先写个 shell 脚本封装命令,再用 VSCode 的
terminal.integrated.shellArgs或自定义任务调用,复杂度远超插件方案 - 典型命令:
npx license mit -o LICENSE --year 2026 --fullname "Your Name",其中mit是 SPDX ID,不能写成MIT或mit.txt - 执行后仍需人工检查:文件是否在根目录、编码是否 UTF-8 无 BOM、
Copyright (c) 2026 Your Name这行是否完全匹配参数(括号、空格、大小写全算)
为什么不能用 fileheader 类插件自动补 LICENSE?
koroFileHeader 或 auto-insert-header 这类插件只管文件头注释,它们压根不处理项目级 LICENSE 文件——那是仓库根目录的独立文本文件,和单个源码文件的头部注释是两套机制。
- 试图用这些插件往
.vscode/settings.json里加模板,只会生成类似// SPDX-License-Identifier: MIT的单行声明,不是完整 LICENSE 文本 - GitHub 的 LICENSE 检测器只扫描根目录下名为
LICENSE(或LICENSE.txt、LICENSE.md)的文件,且只认标准格式正文,不认注释行 - 如果真想统一管理,得靠
LicenseManager插件做合规扫描,但它不生成文件,只报风险
最容易被忽略的其实是编码问题:Windows 记事本保存的 LICENSE 默认带 BOM,GitHub 识别失败时不会报错,只是静默忽略——建议用 VSCode 打开该文件,右下角看编码显示是不是 UTF-8,如果不是,点击切换并重新保存。











