vscode格式化默认快捷键windows/linux为shift+alt+f、macos为shift+option+f,但需已安装并启用对应语言的格式化器,否则会无响应或提示“没有可用格式化程序”。

VSCode 格式化代码的默认快捷键是什么
Windows/Linux 是 Shift + Alt + F,macOS 是 Shift + Option + F——这是 VSCode 原生支持的通用快捷键,但**它不会自动生效**,必须满足两个前提:当前文件有对应语言的格式化器(formatter),且该格式化器已正确启用。
常见错误现象:按下快捷键毫无反应,或提示 “没有可用的格式化程序”;这不是快捷键错了,而是 VSCode 不知道该用谁来格式化你的 .vue、.css 或 .ts 文件。
- 确认文件类型是否被识别:右下角状态栏看当前语言模式(如 “Vue”、“CSS”、“TypeScript”),不是 “Plain Text”
- 安装对应扩展:比如
.vue文件需Vetur或Volar;.ts推荐ESLint+Prettier组合 - 避免多格式化器冲突:如果同时装了
Prettier和Beautify,VSCode 可能无法决定用谁,需手动指定默认格式化器
为什么 .vue 或 HTML 里按 Shift+Alt+F 没反应
因为 Vetur 默认把 .vue 中的 <template></template> 块交给 prettier 处理,而 prettier 默认不支持原生 HTML 格式化(尤其带 Vue 指令时),结果就是“看起来像没反应”。
实操建议:在设置中显式指定模板格式化器为 js-beautify-html:
- 打开
Settings→ 搜索vetur.format.defaultFormatter.html - 把值从
prettier改成js-beautify-html - 重启编辑器或重载窗口(
Ctrl+Shift+P→ 输入 “Developer: Reload Window”)
注意:Volar(Vue 3 官方推荐)不走 Vetur 这套配置,它默认使用 Prettier,所以如果你用的是 Vue 3 项目,别配 Vetur 的选项,改去配 prettier.config.js 或 "html.format.*" 相关设置。
怎么让保存时自动格式化,又不崩掉 ESLint 规则
开启 "editor.formatOnSave": true 很方便,但容易和 ESLint 的修复命令(eslint --fix)打架,尤其当两者规则冲突时,比如缩进用空格还是 tab、分号要不要加——结果是保存一次,代码来回跳动,甚至报错。
- 优先用 ESLint 做代码质量检查,用 Prettier 做纯样式整理,二者分工明确
- 在
settings.json中禁用 Prettier 的部分规则,交由 ESLint 控制:"prettier.semi": false、"prettier.singleQuote": false - 确保 ESLint 配置里启用了
"fix": true,并在保存时只触发 ESLint 修复(而非格式化):"editor.codeActionsOnSave": { "source.fixAll.eslint": true }
这样既保留自动整理效果,又不会让格式化逻辑覆盖代码规范逻辑。
Ubuntu 上 Ctrl+Shift+I 也能格式化?别乱用
是的,Ctrl + Shift + I 在 Ubuntu(以及部分 Linux 发行版)上是 VSCode 内置的另一个格式化快捷键,但它本质是调用“重新缩进”(reindent),不是完整格式化。它只调整缩进层级,不重排标签、不换行、不处理空格/换行风格。
这意味着:
- 对 JS/TS/.vue 文件基本无效(缩进正确但结构混乱依旧)
- 对纯 HTML 或 JSON 可能看起来“有点用”,但远不如
Shift + Alt + F可靠 - 一旦你装了 Prettier 并设为默认,
Ctrl + Shift + I就会被覆盖或忽略
建议统一用 Shift + Alt + F,哪怕在 Linux 上也保持习惯一致;真正要改的不是快捷键,是背后那个没配好的 formatter。










