必须装redhat.vscode-yaml插件,否则shift+alt+f对yaml无效;需手动将语言模式切为yaml、禁用prettier的yaml支持、在工作区settings.json中配置默认格式化器为redhat.vscode-yaml、tabsize设为2、绑定json schema并重载窗口。

必须装 redhat.vscode-yaml,不装它,Shift+Alt+F 按了也白按——连缩进错位都标不出,更别说字段拼错或必填项缺失。
为什么 Shift+Alt+F 对 YAML 没反应?
VSCode 自带的 YAML 支持不提供格式化能力,它只调用扩展。没装对扩展,或者装了但被其他插件“抢走”控制权,快捷键就彻底失灵。
- 右下角状态栏点开语言模式(通常是
Plain Text),手动切到YAML—— 这是第一步,否则 VSCode 根本不识别文件类型 - 按
Ctrl+Shift+P输入Format Document With…,看列表里有没有YAML Language Server;没有说明语言服务器没加载成功 - 检查是否误启用了
esbenp.prettier-vscode的 YAML 支持:它默认会接管.yml文件,但若没配好规则,反而导致格式化静默失败 - 在
settings.json中加一句:"prettier.disableLanguages": ["yaml"],强制把 YAML 交还给redhat.vscode-yaml
如何让保存时自动对齐、缩进统一为 2 空格?
YAML 对缩进极其敏感,kubectl、helm、CI 工具普遍只认 2 空格;设成 4 或用 Tab,上线前就可能报 could not find expected ':'。
- 在工作区根目录的
.vscode/settings.json中写入(不是用户设置):
{
"editor.formatOnSave": true,
"[yaml]": {
"editor.defaultFormatter": "redhat.vscode-yaml",
"editor.tabSize": 2,
"editor.insertSpaces": true
}
}
editor.tabSize,YAML 必须用语言专属块 "[yaml]" 覆盖,否则 .yml 文件仍可能沿用 JS/TS 的 4 空格editor.tabSize 和 editor.insertSpaces 也写进项目级 .editorconfig,防止单人本地设置污染协作Schema 绑定不配,90% 的业务错误根本不会亮红
纯语法检查只能抓冒号漏写、缩进混用;要让 imagePullPolicy: Alwayss(多打一个 s)、spec.template.spec.containers(漏掉 spec)这种问题被标出来,必须绑 JSON Schema。
- Kubernetes 用户直接写:
"kubernetes": "**/*.yaml"—— 这是内置快捷名,自动拉官方最新 Schema,不用填 URL - GitHub Actions 用户填:
"https://json.schemastore.org/github-workflow.json": "/.github/workflows/*.yml" - 自定义 Schema 路径必须是相对于工作区根目录的相对路径,例如:
"./schema/app.json": ["config/*.yml"];~/project/schema.json这种绝对路径会静默失效 - 文件编码必须是 UTF-8 无 BOM,否则插件读取失败且控制台不报错——这是最隐蔽的坑
真正麻烦的不是配置本身,而是插件加载顺序和覆盖逻辑:重载窗口(Developer: Reload Window)不是可选项,是必做动作;语言服务器进程常驻内存,不重载就卡在旧状态,所有配置都白改。











