FileTemplates是最稳的自动模板方案,按扩展名匹配模板(如.py→python.tmpl),支持双百分号变量(如${date:%%Y-%%m-%%d}),但新建未保存文件时${file_name}为空;SublimeTmpl提供快捷键插入骨架,轻量但无法动态注入上下文;Default.sublime-template仅兜底空白新建文件,功能有限;工程初始化应依赖CLI工具而非编辑器模板。

FileTemplates 是最稳的自动模板方案
它能按文件扩展名(比如 .py、.js)自动套用对应模板,新建文件时直接填充结构,不用手动触发。比纯快捷键方案更贴近“初始化工程”的真实需求。
安装后模板必须放在 Packages/FileTemplates/templates 目录下,且文件名要严格匹配扩展名:想让 .py 文件新建即带头注释,就得叫 python.tmpl(不是 py.tmpl 或 Python.tmpl);.js 对应 javascript.tmpl。
变量用双百分号语法,比如 ${date:%%Y-%%m-%%d}、${file_name},单个百分号会被 Sublime 当作转义符吞掉。新建未保存文件时 ${file_name} 为空,别依赖它做路径拼接。
常见踩坑点:
- 模板里写了
#!/usr/bin/env python这类 shebang 行——Windows 上会原样出现,且 FileTemplates 不做平台判断 - 模板路径含中文或空格,导致插件加载失败(控制台
Ctrl+`可查报错) - 误把模板丢进
Packages/User/而非Packages/FileTemplates/templates/
SublimeTmpl 提供语言级快捷键模板
适合需要“按快捷键快速生成某类骨架”的场景,比如 Ctrl+Alt+H 插入 HTML5 基础结构、Ctrl+Alt+J 插入 JS 模块模板。它不依赖文件是否已保存,也不管当前光标在哪,纯粹是内容片段插入。
它的优势在于轻量、响应快,但缺点也很明显:不能按项目定制,所有模板全局生效;无法动态注入项目名、作者等上下文信息;如果同时装了 FileTemplates,两者可能冲突(比如都监听 .py 新建行为)。
使用前确认:Preferences → Package Settings → SublimeTmpl → Settings 中已启用对应语言模板,且快捷键没被其他插件覆盖。默认快捷键在 macOS 上是 Cmd 替代 Ctrl,别按错。
纯配置方案:Default.sublime-template 仅限全局兜底
这个文件只影响“完全空白的新建文件”,也就是你按 Ctrl+N 后还没选语言、也没存盘时的状态。它无法区分语言类型,所有新建文件都会套用同一份内容。
如果你真要用它,路径必须是 Packages/User/Default.sublime-template,内容写成纯字符串(换行用 \n),例如:
#!/usr/bin/env python3
"""
@project: ${file_path}
@date: ${date:%%Y-%%m-%%d}
"""
注意:${file_path} 在新建未保存文件时为空,实际只能靠 ${date} 这类静态变量;若想填入项目名,得靠 Shell 脚本预生成模板再复制进去,Sublime 本身做不到。
工程级初始化别只靠编辑器
真正需要“初始化整个项目”的时候,Sublime 插件只是辅助。比如数据库建表,靠 init_db.sql + 自定义 Build System 执行 mysql -u root -p -e "source $file" 更可靠;前端项目初始化则该用 npm init 或 create-react-app 这类 CLI 工具。
Sublime 的角色是:在已有脚本基础上,帮你更快打开、编辑、执行它们。别指望它替代构建流程本身——模板插件再好,也填不了 .env 里的密钥、跑不了迁移命令、配不了 Webpack。
最容易被忽略的一点:所有模板文件(无论是 .tmpl 还是 schema.sql)都应该纳入 Git 版本控制。否则换个机器、换个人,初始化就断链了。

















