fileheader插件装完默认不生效,必须手动启用"auto_add_to_new_file": true并重启sublime text;还需配置supported_filetypes、对应.tmpl模板及大小写敏感的{{author}}等变量,且语法识别正确才触发。

FileHeader 插件装完默认不生成任何注释,必须手动开启 auto_add_to_new_file 并重启 Sublime Text 才能生效——这是 90% 用户卡住的第一步。
怎么让新建文件自动加头?先开总开关再配语言
FileHeader 不靠“新建动作”触发,只认配置项 auto_add_to_new_file 的布尔值。打开 Preferences → Package Settings → FileHeader → Settings - User,确保有且仅有一行未被注释的配置:
{"auto_add_to_new_file": true}
- 别写在
Settings - Default里——会被覆盖,且升级后丢失 - 别用
//或/* */注释掉这行,否则等于没写 - 改完必须彻底退出 Sublime Text(macOS 尤其注意:关闭窗口 ≠ 退出进程),再重开
- 新建文件后右下角必须显示对应语法(如
JavaScript),若显示Plain Text,插件直接跳过
为什么 .vue / .ts / .html 没反应?supported_filetypes + .tmpl 缺一不可
FileHeader 默认只对 .py、.js、.java 等少数后缀生效。想支持 .vue、.ts、.html,得补全两处:
- 在
Settings - User中添加:"supported_filetypes": ["vue", "ts", "html"](注意:用小写英文名,不是.vue或vue.js) - 进
Preferences → Browse Packages… → FileHeader → template → header,确认存在对应.tmpl文件:
– 没有vue.tmpl就复制javascript.tmpl改名
– 没有typescript.tmpl同理
–html.tmpl必须用<!-- -->包裹变量,不能用//或/* */
作者名、邮箱、日期这些变量为啥不替换?大小写和模板必须严丝合缝
变量必须用双大括号语法,且拼写、大小写必须和 Settings - User 中完全一致:
- 在
Settings - User里声明:{"Default": {"author": "Zhang San", "email": "zhang@example.com"}} - 模板里必须写成
{{author}}、{{email}},写成{{Author}}或@Author: Zhang San都不会替换 - 新建文件后必须立刻保存为带后缀的文件(如
index.vue),否则 Sublime 无法识别语言类型,不渲染模板 -
{{create_time}}默认是文件创建时间;若需保存时动态更新日期,得用on_pre_save自定义插件 +datetime.now().strftime("%Y-%m-%d")
保存时自动补头部?FileHeader 做不了,得自己写 Python 插件
FileHeader 对保存事件响应弱,也不判断已有头部是否合规。真要团队级规范(比如 CI 要求头部必须存在、日期必须是保存时刻),就得监听 on_pre_save:
- 插件路径:
Packages/User/auto_file_header.py - 检查开头 3 行是否含
# -*-、/**、//等标记,有则跳过 - 模板从
Packages/User/file_header_template.json加载,避免硬编码 - 调用
view.insert(edit, 0, text)必须传edit对象,位置必须是0(文件开头) - 别用
on_post_save——它已写入磁盘,改了也白改
真正容易被忽略的是:插件里正则匹配头部时,必须用 re.MULTILINE,否则 ^ 只匹配整个字符串开头,而不是每行开头。











