sublime text 的代码格式化与对齐完全依赖插件且需手动配置:jsprettier(js/ts)、black(python)、html-css-js prettify(html/css/内联js)须按语言精准安装并前置环境;st4 必用 aligntab 替代已停更的 alignment;ctrl+alt+a 失效常见于未重启、语法识别错误或快捷键冲突;对齐前须统一为空格缩进并禁用 auto_save,否则格式化插件会覆盖手动对齐。

Sublime Text 本身不格式化、不对齐、不美化——所有“一键”效果都来自插件,且必须手动装、手动配、手动触发。没配对语法、没选对插件、没统一缩进,按烂快捷键也没用。
JsPrettier / Black / HTML-CSS-JS Prettify:按语言选对插件
别搜“格式化插件”统一装,不同语言生态不互通:
- JavaScript/TypeScript:装
JsPrettier(不是prettierCLI),它读.prettierrc,支持auto_save;需提前装好 Node.js 和全局prettier - Python:装
Black插件,但必须先运行pip install black,插件只是调用器;不装black命令,插件报错command not found: black - HTML/CSS/内联 JS:用
HTML-CSS-JS Prettify,但它对<script>const a = `html ${b}`</script>这类混合内容容易误解析,建议拆成单独文件再格式化
Alignment(ST3)vs AlignTab(ST4):版本决定插件生死
Sublime Text 4 用户别碰 Alignment——作者已停更,API v4 不兼容,装了也静默失效(控制台无报错,但 Preferences → Package Settings 里根本不出现在列表中):
- ST3 用户可装
Alignment,进Preferences → Package Settings → Alignment → Settings – User,填入:{"alignment_chars": ["=",":","=>"],"align_indent": false} - ST4 用户必须用
AlignTab,通过Package Control: Install Package安装后,在Preferences → Key Bindings用户配置里加:[{"keys": ["ctrl+alt+a"],"command":"align_tab","args": {"user_input":"="}}] -
user_input是正则,写"="只匹配等号,写"=|:"同时匹配等号和冒号;注意|要转义为\|才生效
Ctrl+Alt+A 没反应?三步硬排查
不是插件坏了,是卡在基础链路上:
- 没重启 Sublime:插件安装或配置修改后,必须完全退出再重开,否则命令不注册、快捷键不加载
- 语法识别错误:右下角显示的是
Plain Text而不是JavaScript或Python,插件直接跳过;手动点右下角切换,或保存为.js/.py后缀 - 快捷键被占:打开
Preferences → Key Bindings,右侧用户配置里搜ctrl+alt+a,常见冲突来自Emmet、SideBarEnhancements;删掉旧条目,或换组合如ctrl+shift+a
对齐歪斜、Git diff 爆炸?缩进和空格才是真凶
Alignment 和 AlignTab 都按「可视列」对齐,但制表符 \t 和空格在列宽计算上不等价:
- 全选代码 →
Ctrl+Shift+P→ 输入Convert Indentation to Spaces→ 回车,强制统一为空格 - 在
Preferences → Settings用户配置中加:"detect_indentation": false,防止保存时被意外改回 Tab - 如果开了
JsPrettier或Black的auto_save,它们会在你对齐后立刻重排,把手动对齐全抹掉,造成大量无意义 diff;关掉"auto_save": false再操作
真正麻烦的从来不是按哪个键,而是你选中的那几行里有没有混用 Tab/空格、有没有注释干扰、有没有全角符号——这些细节不处理,插件再强也白搭。











