filetemplates是最稳的自动模板方案,新建文件时按扩展名自动套用模板,如.py文件自动插入python头注释和shebang;模板须放packages/filetemplates/templates/下,命名严格对应语言,变量用双百分号语法,${file_name}在未保存时为空。

FileTemplates 是最稳的自动模板方案
新建文件时按扩展名自动套用模板,比如保存为 .py 就直接插入 Python 头注释和 shebang,不用手动选、也不用记快捷键。它不依赖文件是否已保存,只要最终扩展名匹配,就会生效。
安装后模板必须放在 Packages/FileTemplates/templates/ 目录下,且文件名要严格对应语言:
- python.tmpl 对应 .py
- javascript.tmpl 对应 .js
- html.tmpl 对应 .html(不是 htm.tmpl)
变量要用双百分号语法,比如:${date:%%Y-%%m-%%d}、${file_name}。注意:${file_name} 在新建未保存文件时为空字符串,别拿它拼路径或做条件判断。
常见踩坑点:
- 模板路径含中文或空格,插件加载失败(控制台 Ctrl+` 可查报错)
- 把模板误丢进 Packages/User/ 而非 Packages/FileTemplates/templates/
- 写了 #!/usr/bin/env python 这类 shebang 行,Windows 下照常出现,FileTemplates 不做平台过滤
SublimeTmpl 适合快捷键触发的骨架插入
按 Ctrl+Alt+H 立即生成 HTML5 骨架,Ctrl+Alt+J 插入 JS 模块结构——这类操作不依赖当前文件状态,光标在哪都能用,响应快、无延迟。
它默认支持 html、css、javascript、python、php、ruby 六种模板,新增语言(如 .vue)需手动加:
- 在 Packages/SublimeTmpl/templates/ 下新建 vue.tmpl
- 修改 Preferences → Package Settings → SublimeTmpl → Settings - Menu,加一条 vue 菜单项
- 同时在 Settings - Default 中配置 scope,比如设为 source.vue(得先装 Vue Syntax Highlight 插件,否则 scope 找不到)
它的限制也很明确:
- 所有模板全局生效,无法按项目定制
- 不支持动态上下文(比如注入当前项目名、Git 用户名)
- 如果同时启用 FileTemplates,两者可能冲突(比如都监听 .py 新建行为)
sublime-snippet + 手动触发是最轻量可控的折中方案
不需要装插件,也不改快捷键,适合结构固定的小型模板,比如 JSON 配置骨架、HTML5 基础结构、Python 脚本头。
做法是:
- 新建一个空文件,写好模板内容
- Tools → Developer → New Snippet…
- 把内容粘进 <content></content> 区域,设 <tabtrigger>html5</tabtrigger>
- 保存为 Packages/User/html5.sublime-snippet
关键点在于 scope:
- snippet 不会在 Plain Text 语法下生效,必须先手动切语法(右下角点 Plain Text → 选 HTML)
- scope 写错就永远不触发,比如写成 text.html 而不是 text.html.basic(不同 HTML 插件注册的 scope 不同)
这个方案最大的优势是“可控”:你清楚每一步在哪、怎么改、出问题去哪查;劣势是每次都要手动切语法,不适合高频批量新建。
Default.sublime-template 只兜底空白新建文件
它只影响你按 Ctrl+N 后还没选语言、也没存盘的状态。所有新建文件都会套用同一份内容,无法区分语言类型。
如果真要用,路径必须是 Packages/User/Default.sublime-template,内容写成纯字符串,换行用 \n,例如:
# -*- coding: utf-8 -*-
"""
@project: ${file_path}
@date: ${date:%%Y-%%m-%%d}
"""
注意:
- ${file_path} 在空白新建时为空,别指望它返回真实路径
- 这个文件不会被任何插件增强,变量支持极弱,仅限最基础的兜底场景
- 它和 FileTemplates、SublimeTmpl 完全不兼容,三者共存时优先级混乱,容易互相覆盖
真正复杂的是 scope 和模板路径的耦合关系——比如 Vue 模板要生效,得同时满足:Vue Syntax Highlight 已安装、scope 名字对得上、SublimeTmpl 的 menu 和 default 设置同步更新。漏掉任一环,快捷键就静默失败,连报错都没有。











