专注于WEB前端开发, 追求更好的用户体验, 更好的开发体验 [长沙前端QQ群:234746733]

Sublime Text 新建文件的模版插件: SublimeTmpl

写了个sublime的模版插件, 项目主页: https://github.com/kairyou/SublimeTmpl
这样就可以新建文件时使用模版的内容了, 目前添加了html/js/css/php/python/ruby的模版. 不需新建空白文件, 再从其他文件复制内容过来了.
已增加对Sublime Text3的支持.

使用:

1. ST菜单, File-New File (SublimeTmpl), 选择列表里的相应菜单, 可直接使用模版新建文件.
2. 命令, cmd+shift+p, 输入: "tmpl:", 可以找到创建文件的菜单列表.
3.快捷键, 默认快捷键见下面. 可以自己修改, 方法见"设置"部分.

默认快捷键:

ctrl+alt+h html
ctrl+alt+j javascript
ctrl+alt+c css
ctrl+alt+p php
ctrl+alt+r ruby
ctrl+alt++shift+p python
关闭默认快捷键:

Package Settings > SublimeTmpl > Settings - User, 增加disabled_keymap_actions配置:
"disabled_keymap_actions": "html, css" // 关闭html/css语法的快捷键(多个逗号分隔) "disabled_keymap_actions: "all" //关闭所有语法快捷键

安装:

方法1. 通过 Package Control
Package Control / Install Package, 搜索"SublimeTmpl" 或 "tmpl", 安装.
* [2012/08/01]已经通过Package Control审核

方法2. Github
打开项目主页, git clone到ST的Packages文件夹(\Data\Packages), 或直接把ZIP格式的下载下来解压到Packages文件夹(文件夹名称必须为:SublimeTmpl).

设置:

菜单: Preferences / Packages Settings / SublimeTmpl, 可以编辑菜单/快捷键/新语法等等.

如果你想贡献自己的package, 可以参考我这篇文章的介绍:
http://www.fantxi.com/blog/archives/how-to-submit-a-sublime-package/

新增特性:

1. 用户自定义模板 (Thanks @Xu Cheng)
自定义模板路径: "Data\Packages\User\SublimeTmpl\templates" 目录, 会优先使用(可以参考:默认的模板).
默认模版路径: "Data\Packages\SublimeTmpl\templates" 目录.
用自己自定义的模板: 推荐把默认模版目录的*.tmpl文件 复制到 自定义模板路径, 再去修改.

2. 模板支持 ${date} 变量
settings - user里面可以修改${date}默认的输出格式("%Y-%m-%d %H:%M:%S"), 比如改成: "date_format" : "%Y-%m-%d"

3. 模板支持自定义 attr
settings - user里添加:

"attr": {
    "author": "your name" ,
    "email": "mail@yours.com",
    "link": "http://yours.com",
    "hello": "word"
}

就能在模板中使用 ${author} ${email} ${link} ${hello} 变量
Thanks @vfasky (Blog)

4. 保存文件时支持: ${saved_filename}, ${saved_filepath} 变量, settings - user里添加:
"enable_file_variables_on_save": true, // 开启
文件保存时, 上面的2个变量会替换为: 保存的文件名, 和文件路径.

5. 支持: ${project_base_name}, ${project_path} and ${platform} 变量, settings - user里添加:
"enable_project_variables": true, // 开启
Note: 仅ST3支持, 上面的3个变量会替换为: 项目名, 项目路径, 当前系统环境.

另外, 关于新增语言的附加说明

1. 新增SublimeTmpl里面没有的语言

首先请看: Packages Settings / SublimeTmpl / Settings - Default 的默认语法设置.
如果要新增语法, 请选择: SublimeTmpl / Settings - User, 内容格式参考Settings - Default的内容, 比如新增两个语言test和yours:

{
       "test": {"syntax": "Packages/test/test.tmLanguage", "extension": "test"},
       "yours": {"syntax": "Packages/Yours/Yours.tmLanguage", "extension": "abc"}
}

上面的"Packages/test/test.tmLanguage"是Packages目录内的syntax路径, extension是默认保存时使用的扩展名.

新增开始菜单: 可以在SublimeTmpl / Settings - Menu里, 参照其他语法增加test和yours.
新增快捷键: 可以编辑:SublimeTmpl / Key Bindings User( 格式参考: SublimeTmpl / Key Bindings Default)

2. 新增Sublime的语言

这个我也没新建过, 可以去Package Control或者github上面找个其他人添加的新语言, 参考参考.
如果没找到别人写好的, 可以参考如下网址, 自己做:
http://docs.sublimetext.info/en/latest/extensibility/syntaxdefs.html (官方文档, 利用AAAPackageDev这个插件制作)
http://manual.macromates.com/en/language_grammars (textmate的doc, 和sublime大部分是相同的)
https://github.com/LearnBoost/stylus/blob/master/editors/Stylus.tmbundle/Syntaxes/Stylus.tmLanguage (别人写好的语法, 可以和自己新建的对比)

/ 分类: 工具,实践 / TrackBackhttps://xhl.me/archives/sublime-template-engine-sublimetmpl/trackback标签: sublime, 插件

已有 80 条评论 »

  1. 冷夜草 冷夜草

    kairyou,你好
    我在使用SublimeTmpl是有一些问题想要请教
    在编写输出时,PHP中的一些变量名会消失
    比如$A=11;在触发模板生成后会变成=11;
    请问这个问题该怎么解决?谢谢

    另:
    我的环境Win8.1 + ST2

    1. kairyou kairyou

      Hi, 要转义, 改成: \$A=11;

  2. luminous11 luminous11

    能不能将模板加入到一个已经创建好的文件中,而不是去新建一个文件

    1. kairyou kairyou

      这不是插件应做的, 可以写个sublime-completions来实现补全,你可以看看官方的文档.

  3. 随风而行 随风而行

    请教楼主一个问题,网上确实搜不到。创建新文件时,默认为py文件,保存新建文件时又怎么默认保存为py后缀的呢?

    1. kairyou kairyou

      这个是st的语言文件定义的, 你可以看这里:http://t.cn/R2AInoy

  4. 随风而行 随风而行

    试用了下,
    [Warning] No such file: C:\Program Files (x86)\Sublime Text 2\Data\Packages\SublimeTmpl\templates\python.tmpl or C:\Program Files (x86)\Sublime Text 2\Data\Packages\User\SublimeTmpl\templates\python.tmpl
    win7 64位系统

    1. kairyou kairyou

      我没测试到这个问题, 你可以点菜单的"Browse Package"看目录里面是否有"SublimeTmpl"文件夹, 或者package control卸载再安装

  5. kame008 kame008

    TAT settings - user不让我存 我一定是被诅咒了

  6. Alan Alan

    我想问一下,ctrl+alt+j 快捷键无效,怎么修改啊?其它快捷键都正常可用。系统的默认快捷键中也没有占用ctrl+alt+j 组合键的……

    1. kairyou kairyou

      快捷键无效,除了系统占用,还可能被某些插件占用, 试试用findKeyConflicts查查看.

  7. 尼好 尼好

    请问能否有类似eclipse或者vs.net这样创建工程或项目的方式,包括文件的创建,文件内部模板内容的创建(sublimetmpl),相关配置信息等。

    1. kairyou kairyou

      抱歉没考虑做的这么复杂, 不过你的想法不错, 期待有其他贡献者实现这个.

添加新评论 »