Shift + Alt + F 失效是因为格式化器未正确配置:需检查右下角语言模式、安装并指定HTML格式化扩展(如Prettier)、Vue项目需按版本适配Vetur/Volar配置,且须避免ESLint与Prettier规则冲突。

Shift + Alt + F 不起作用?不是快捷键坏了,是格式化器没接上。
Shift + Alt + F 按下没反应,先看右下角语言模式和默认格式化器
VS Code 的 Shift + Alt + F 是调用「格式化文档」命令的原生快捷键,但它不自带格式化能力——它只负责喊人干活,没人应答就静音。
- 点右下角状态栏(如显示
Plain Text或HTML),手动选成HTML;若显示Vue,说明你在 .vue 文件里,得进<template>块再试 - 确保至少装了一个 HTML 格式化扩展:
esbenp.prettier-vscode(推荐)或启用内置的vscode.html-language-features - 如果同时装了
Prettier、Vetur、js-beautify-html,VS Code 可能无法自动选,默认 fallback 为“无可用格式化程序”——此时必须手动指定:右键编辑器 →Format Document With…→ 选一个并勾选Configure Default Formatter...
Vue 单文件组件中 <template> 格式错乱,别乱改 Vetur 配置
Vue 2 项目用 Vetur,默认把 <template> 交给 Prettier 处理,但 Prettier 对 v-if、@click 等 Vue 指令支持弱,结果就是按完 Shift + Alt + F 后所有标签挤在一行、属性换行全崩。
- Vue 2 + Vetur:搜设置项
vetur.format.defaultFormatter.html,值从prettier改成js-beautify-html,然后执行Developer: Reload Window - Vue 3 + Volar:Volar 不读 Vetur 配置,直接走
Prettier;此时必须配prettier.config.js,加htmlWhitespaceSensitivity: "ignore",否则空格会被误删 - 别在 Vue 3 项目里还去调
Vetur的选项——它压根不监听,纯属白忙
editor.formatOnSave 开了却越保存越乱,ESLint 和 Prettier 在抢活干
开启 "editor.formatOnSave": true 很方便,但若同时开了 ESLint 自动修复("editor.codeActionsOnSave": { "source.fixAll.eslint": true }),就会出现保存一次、缩进变 4 空格、分号又加又删、属性顺序被重排、注释被折行等混乱现象。
立即学习“前端免费学习笔记(深入)”;
- 分工要明确:让 Prettier 负责格式(缩进、换行、引号),ESLint 负责逻辑(
no-unused-vars、eqeqeq) - 在
settings.json中禁用 ESLint 的自动格式化:加"eslint.format.enable": false -
html.format.*类配置(如html.format.wrapLineLength)只对 VS Code 内置格式化器生效,Prettier 完全无视它们——别指望靠这个调 Prettier 行为
! + Enter 生成骨架后,<title> 为空、<meta charset> 缺失,上线前必踩坑
! + Enter 确实能快速生成 HTML5 骨架,但这是个“半成品”,不是交付件。
- 必须在
.html文件中触发,.txt或未保存的 Untitled 文件里无效 - 生成的
<title>默认为空,SEO 工具一扫就是低分项;务必补上语义化标题 -
<meta charset="UTF-8">不在默认骨架里,漏掉会导致中文乱码——建议在settings.json中配html.suggest.html5为true,再配合 Emmet 的meta:utf缩写补全 - 骨架里没有
<viewport>,移动端页面会默认缩放——可配 Emmet 缩写meta:vp快速插入
真正卡住人的从来不是快捷键记不住,而是不知道哪个环节断了链子:语言模式没切对、格式化器没指定、Vue 版本和插件不匹配、ESLint 和 Prettier 规则重叠……这些地方一错,Shift + Alt + F 就成了摆设。



















