Emmet在Sublime Text 4中默认未启用,需手动设置"emmet_enabled": true、右下角语法设为HTML、用Ctrl+E(非Tab)触发展开;Vue/JSX需额外配置syntax_scopes和emmet_include_languages映射。

确认 Emmet 是不是真没装,还是根本没启用
Sublime Text 4(及较新 v3)默认不启用 Emmet,哪怕你记得以前用过,现在也可能被关掉了。别急着重装——先打开 Preferences → Settings,在右侧用户设置里搜 "emmet_enabled"。如果没这行,手动加进去:"emmet_enabled": true;如果值是 false 或被注释掉,改回来并保存。改完建议重启一次,部分版本不重启不加载新配置。
右下角显示 Plain Text?Emmet 直接无视你写的任何缩写
Emmet 完全不看文件后缀名,只认右下角状态栏显示的语法类型。新建文件默认就是 Plain Text,此时敲 html:5 + Ctrl+E 也不会有任何反应。必须先按 Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS),输入 Set Syntax: HTML 回车。看到右下角变成 HTML 才算真正进入 Emmet 的工作范围。同理,写 CSS 要设为 CSS,不是 SCSS 或 Less,除非你额外配了支持。
Tab 键按不动?默认触发键根本不是 Tab
Sublime Text 4 默认把 Tab 绑给缩进和原生补全,Emmet 的实际默认触发键是 Ctrl+E(Win/Linux)或 Cmd+E(macOS)。这是 2026 年绝大多数人卡住的第二步。验证是否生效,就用这个组合键:html:5 写完紧贴行尾,按 Ctrl+E,立刻生成完整 HTML5 结构才算对。想换回 Tab?得去 Preferences → Key Bindings 用户配置里加 context 判断,不能裸写 tab,否则在 JS 或 Markdown 里也会误触发:
[{"keys": ["tab"],"command":"emmet_expand_abbreviation","context": [{"key": "selector","operator": "equal","operand": "source.css, text.html - source"}]}]Vue/JSX 里缩写不展开?光装插件远远不够
Sublime 不原生识别 .vue 或 .jsx 文件里的 HTML 片段,Emmet 默认跳过这些区域。即使你在 <template></template> 里写了 div.container,按 Ctrl+E 也毫无反应。必须做两件事:
实现 Markdown↔ HTML 互转,支持导出 PDF,用于用户请求的文档格式转换。
立即学习“前端免费学习笔记(深入)”;
- 打开
Preferences → Package Settings → Emmet → Settings,在用户设置里加:"syntax_scopes": {"vue": "text.html.vue", "jsx": "text.html.jsx"} - 再加映射:
"emmet_include_languages": {"vue-html": "html", "javascriptreact": "html"} - 确保右下角语法显示的是
Vue或React JSX,不是JavaScript
漏掉任意一步,<template></template> 里的所有缩写都等于白写。
最常被忽略的其实是“上下文”:Emmet 不是全局监听器,它只在特定 selector 下激活。验证时别只试 div,那可能被 Sublime 原生 snippet 劫持;一定要用 ! 或 html:5 这类依赖完整解析器的缩写,才能确认它真的在干活。


















