Sublime Text 本身无代码格式化能力,所有“一键排版”依赖插件;JsPrettier需配置prettier_cli_path绝对路径并重启,Black替代autopep8更稳,Vue文件慎用HTML-CSS-JS Prettify,局部格式化须先手动选中代码块。

Sublime Text 本身没有代码格式化能力,所谓“一键排版”全是插件在干活;装错插件、路径没配对、没选中代码块,都会导致按下去没反应——这不是你手速慢,是环境没搭对。
JsPrettier 格式化 JS/TS/JSON 总没反应?先查 prettier 命令是否存在
JsPrettier 不是独立程序,它必须调用系统里已安装的 prettier CLI。常见现象:按 Ctrl+Shift+P 输入 JsPrettier 回车,状态栏闪一下就停住,控制台无报错——八成是找不到 prettier。
- 终端执行
which prettier(macOS/Linux)或where prettier(Windows),确认命令可访问 - 返回为空?说明没装或没进
PATH:运行npm install -g prettier - 进 Sublime →
Preferences → Package Settings → JsPrettier → Settings,填入prettier_cli_path绝对路径,例如:/opt/homebrew/bin/prettier或C:\Users\xxx\AppData\Roaming\npm\prettier.cmd -
use_stdin建议设为true,避免文件 BOM 或编码问题导致解析失败 - 改完必须重启 Sublime,插件不热重载
Python 用 black 而不是 autopep8:类型注解和 f-string 容易崩
autopep8 对现代 Python 特性支持弱,遇到 def foo(x: str) -> None: 或 f"hello {name}" 可能直接报 invalid syntax。black 是目前最稳的选择,风格统一,无需纠结配置。
- 终端运行
pip install black - 插件名是
sublime_black(不是Black或python-black),通过 Package Control 搜索安装 - 验证方式:终端输
black --version,确保命令在PATH中 - 默认快捷键是
Ctrl+Shift+K,建议手动绑定为Ctrl+Alt+B:打开Preferences → Key Bindings,右侧加一行:{"keys": ["ctrl+alt+b"], "command": "black"}
Vue 单文件组件慎用 HTML-CSS-JS Prettify:缩进会全乱
这个插件对纯 HTML 还行,但一碰到 <template>+<script setup>+<style scoped> 的 Vue SFC,</script> 可能被塞进 <style> 里——不是 bug,是它根本没设计支持多语言块解析。
- 临时方案:只选中
<template>区域再格式化,别全选整个.vue文件 - 长期建议:改用
JsPrettier配合prettier-plugin-vue(需额外npm install -g prettier-plugin-vue) - 若坚持用
HTML-CSS-JS Prettify,请关掉auto_format_on_save,否则保存即灾难 - 它的快捷键
Ctrl+Shift+H和JsPrettier冲突,两个都装必须重映射其中一个
想只格式化一段逻辑?必须先手动选中代码块
几乎所有 Sublime 格式化插件默认作用于整个文件,不是“当前函数”或“当前对象”。如果你只想整理一个对象字面量、一段 JSX 或某个配置块,不选中就按快捷键,大概率会把注释、模板字符串甚至 /* prettier-ignore */ 也重排。
- 先用鼠标拖选或
Shift+方向键选中目标区域 - 再触发格式化命令(如
Ctrl+Alt+F),有选区时多数插件自动降级为“仅格式化选区” - 别依赖
format_on_save:大文件(如生成的bundle.js)会被卡住;Git 差异会因空格/引号变化而污染提交记录 - 真要开自动保存格式化,务必限定范围:
"format_on_save_extensions": ["py", "js", "jsx", "ts", "tsx"]
真正麻烦的不是装插件,而是每种语言都要配不同的底层命令路径、文件作用域识别和快捷键映射;漏一步,就静默失败。而且项目级规则(比如 .prettierrc 或 pyproject.toml)不会被插件自动继承,得手动确认是否生效。


















