在 sublime text 中创建自定义 snippet 需手动新建 xml 文件(.sublime-snippet)置于 packages/user/ 目录,通过 tools → developer → new snippet… 生成模板,修改 content、tabtrigger 和 scope 后保存;tabtrigger 须为字母数字下划线组合,scope 要匹配目标语法(如 source.js),支持 $1、$2、${1:default}、$0 等跳位变量;修改后需重启或执行 reload syntaxes 刷新生效。

怎么在 Sublime Text 里创建自定义 Snippet
Sublime Text 的 Snippet 是纯 XML 文件,放在 Packages/User/ 目录下,后缀为 .sublime-snippet。它不是 JSON 或 YAML,也不是通过设置菜单点出来的功能——必须手动新建文件并按规范写。
- 打开 Sublime → Tools → Developer → New Snippet…,会生成一个带注释的模板
- 把
content里的占位内容替换成你要展开的代码,比如console.log($1); - 修改
tabTrigger(比如设为log),保存时命名为log.sublime-snippet - 保存路径必须是
Packages/User/(可通过 Preferences → Browse Packages… 快速打开)
tabTrigger 不生效?检查这几点
输完触发词按 Tab 没反应,大概率是配置或路径问题,不是 Sublime 坏了。
-
tabTrigger值不能含空格或特殊符号,只支持字母、数字、下划线,比如http-get❌,http_get✅ - 文件名必须和
tabTrigger一致(可不一致,但容易混淆;推荐保持一致) - 确保
scope正确:比如想在 JavaScript 里用,scope应为source.js;写成text.html就只在 HTML 文件里生效 - 如果用了多个 scope(如 JS + TS),用
source.js, source.ts,逗号后不能有空格
Snippet 里怎么用变量和跳位($1 $2 ${1:default})
这些不是字符串拼接,是 Sublime 内置的动态字段语法,用于控制光标位置和默认值。
-
$1、$2表示 Tab 键顺序跳转的位置,数字越大越后跳 -
${1:foo}表示第 1 个跳位,默认显示foo,可直接编辑 -
$0是最终光标停留位(常放在结尾,比如函数体后) -
$TM_SELECTED_TEXT可插入当前选中文本(适合包裹类 snippet,如加/** */注释)
<snippet>
<content><









