
Sublime Text 没有内置 JS 格式化功能
它本身不带 prettier 或 eslint --fix 这类能力,所有“一键格式化”都依赖插件。直接按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)搜 “Format” 是没用的——默认啥都不返回。
必须装插件:推荐 JsPrettier(非 Prettier 自身)
原生 prettier CLI 不能直接被 Sublime 调用,JsPrettier 是专为 Sublime 封装的桥接插件,稳定、支持配置、能读 .prettierrc。
- 用 Package Control 安装:
Ctrl+Shift+P→ 输入Package Control: Install Package→ 搜JsPrettier→ 回车 - 安装后默认快捷键是
Ctrl+Alt+F(Windows/Linux)或Cmd+Alt+F(macOS) - 首次运行会提示安装
prettierCLI:它会自动调用你系统里已有的npm或yarn全局安装prettier;若失败,手动执行npm install -g prettier - 不建议用
SublimeLinter-eslint做格式化——它只报告错误,--fix需额外配命令,且容易和JsPrettier冲突
常见报错及对应解法
按下快捷键后无反应或弹出错误,基本就这三类:
-
JsPrettier ERROR:通常是prettierCLI 没装好,检查终端能否运行prettier --version;若用 nvm,确保 Sublime 启动时环境变量加载了当前 node 版本 -
No valid syntax found:文件没识别为 JavaScript,右下角点击语法类型 → 选JavaScript或JavaScript (Babel);若用.mjs或.cjs后缀,需在JsPrettier.sublime-settings里加"auto_format_on_save": true和"extensions_supported"扩展列表 - 格式化后缩进错乱或单双引号反向:说明项目有
.prettierrc但 JsPrettier 没读到,确认该文件放在项目根目录(不是用户主目录),且内容合法(如{"singleQuote": true})
快捷键冲突与保存即格式化的坑
Sublime 默认 Ctrl+Shift+P 是命令面板,但某些输入法或系统快捷键会劫持 Ctrl+Alt+F,导致格式化失效。
立即学习“Java免费学习笔记(深入)”;
- 改快捷键方法:菜单 →
Preferences→Key Bindings→ 左侧粘贴(注意替换原有绑定):[{"keys": ["ctrl+alt+j"], "command": "js_prettier", "args": {"auto_indent": true}}] - 开启
auto_format_on_save要谨慎:如果团队没统一.prettierrc,保存时自动重排可能引入大量无关 diff;建议仅在个人项目或已对齐规范的仓库中启用 - Vue / React 单文件组件里的
<script>块默认不触发格式化,需在JsPrettier.sublime-settings中添加"syntax_scopes": ["source.js", "source.jsx", "source.ts", "source.tsx", "text.html.vue"]
真正卡住人的往往不是“怎么装”,而是 CLI 环境没对上、语法没识别准、或者配置文件放错了位置——这些地方一错,整个流程就静默失败。










