Sublime Text 本身无自动排版功能,所有格式化均由插件(如JsPrettier、Sublime-Code-Formatter)调用prettier/black等外部工具实现;彻底停用需同步关闭插件的format_on_save、清理User.keymap中相关命令绑定、登出同步账号并终止后台进程。

Sublime Text 本身没有“自动排版”功能,所谓恢复默认,其实是停止所有插件驱动的格式化行为,并清除相关配置残留。直接删 User.sublime-keymap 或关掉某个开关没用——格式化命令(如 js_prettier、sublime_code_formatter)仍可能在保存时静默触发。
为什么 Ctrl+Alt+L 或保存后还在自动排版?
这不是 Sublime 自带行为,而是插件在后台调用外部工具(如 prettier、black)的结果。只要插件配置里还开着 format_on_save,或快捷键绑定没清干净,它就会继续工作。
- 检查是否装了
JsPrettier、Sublime-Code-Formatter、HTML-CSS-JS Prettify等常见格式化插件 - 打开菜单 Preferences → Package Settings,逐个点开这些插件,看有没有勾选 “Format on Save” 或类似选项
- 按
Ctrl+Shift+P输入Preferences: Settings – Syntax Specific,确认当前语法(如 JavaScript)下没额外写入format_on_save - 终端运行
subl --safe-mode启动,再试保存——如果不再格式化,说明问题出在插件或用户 keymap 上
怎么彻底停掉所有格式化行为?
不能只删快捷键,得从三处同时清理:插件配置、用户键位、格式器 CLI 路径绑定。
- 进 Preferences → Package Settings → [插件名] → Settings,把
"format_on_save": true改成false;若找不到该选项,查插件文档确认是否默认开启 - 打开 Preferences → Key Bindings,右侧
User.sublime-keymap中删掉所有含"command": "js_prettier"、"command": "sublime_code_formatter"的条目 - 检查
Packages/User/目录下是否有插件专属 keymap 文件(如JsPrettier.sublime-keymap),有就重命名或删掉 - 如果曾手动在
Preferences.sublime-settings里加过"path"或"node_path",也建议暂时注释掉——避免 Sublime 错误调用本地prettier
重置失败?可能是同步账号或后台进程在捣鬼
删完配置重启,发现格式化又回来了,大概率是两个原因:账号同步拉回旧设置,或后台进程把内存状态刷回磁盘。
- 先执行
subl --sync-logout(终端命令),或菜单栏 Sublime Text → Preferences → Sync Settings → Logout,否则云端的Preferences.sublime-settings和 keymap 会自动覆盖本地修改 - Windows:任务管理器 → “详细信息”页 → 结束所有
sublime_text.exe和subl.exe进程
macOS:活动监视器 → 搜索 “Sublime Text” → 强制退出所有匹配项
Linux:终端运行pkill -f "sublime_text" - 删之前确认没人在用
subl命令后台打开文件,否则进程锁住Packages/User,删不干净
真正“恢复默认”的难点不在操作多寡,而在判断哪一层在起作用:是插件配置、语法专属设置、keymap 绑定,还是同步账号兜底。别跳过 --safe-mode 验证这一步,它能帮你快速锁定问题来源。路径错一个字符、进程少杀一个、同步没登出,都会让重置看起来“失效”。











