Sublime Text 的代码片段必须使用 .sublime-snippet 后缀、存于 Packages/User/ 目录、全英文路径、UTF-8 无 BOM 编码,且需重启生效;tabTrigger 定义触发缩写,scope 限定语法环境,变量用 $1、${2:default} 格式。
Snippets 文件必须用 .sublime-snippet 后缀
Sublime Text 不会识别 .xml、.txt 或无后缀的文件为代码块。新建文件后,务必保存为 xxx.sublime-snippet,否则即使内容正确也不会出现在补全列表中。
常见错误是直接复制别人 snippet 内容到普通文本文件里改完就关,结果重启 Sublime 也看不到效果。路径建议放在:Packages/User/ 目录下(可通过菜单 Preferences → Browse Packages… 打开)。
tabTrigger 和 scope 决定触发时机
tabTrigger 是你敲完按 Tab 键时激活 snippet 的缩写词,比如设为 log,输入 log 再按 Tab 就展开;scope 控制它在哪些语法下生效——这点极易被忽略。
例如 JavaScript 中常用的 console.log();,如果 scope 写成 source.python,那在 JS 文件里永远触发不了。常用 scope 值有:
-
source.js(JS 文件) -
source.python(Python 文件) -
text.html.basic(HTML 文件) -
source.css(CSS 文件)
查当前文件 scope:按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Scope: Show Scope Name 回车,底部状态栏会显示当前光标处的完整 scope 字符串。
变量和占位符用 $1、$2、${1:default} 格式
Snippets 支持多光标跳转和默认值,但语法不是 ${var} 或 $name 这类模板写法,而是严格使用数字序号加可选默认值: