vscode 格式化代码核心流程:安装格式化插件 → 配置默认格式化器 → 设置自动/手动格式化 → 使用快捷键触发。以下是通用+分语言的详细方案,覆盖前端、python、java 等主流场景。

一、必装格式化插件(按语言推荐)
1. 通用全能型(前端/全栈首选)
prettier - code formatter(最推荐)
- 作者:esbenp.prettier-vscode
- 支持:js/ts/html/css/json/vue/react/markdown 等几乎所有前端语言
- 优势:规则统一、开箱即用、团队协作友好,解决“格式圣战”
- 安装:
- 打开扩展面板:
ctrl+shift+x(windows/linux)/cmd+shift+x(macos) - 搜索
prettier - code formatter→ 点击「安装」 - 安装后重启 vscode 生效
- 打开扩展面板:
2. 语言专用插件(按需安装)
| 语言 | 推荐插件 | 插件id | 核心优势 |
|---|---|---|---|
| python | black formatter | ms-python.black-formatter | 严格统一python格式,无配置争议 |
| python | autopep8 | ms-python.autopep8 | 兼容pep8规范,轻量易用 |
| java | language support for java | redhat.java | 内置格式化,无需额外插件 |
| c/c++ | c/c++ | ms-vscode.cpptools | 支持clangformat,自定义规则 |
| go | go | golang.go | 内置gofmt,符合go官方规范 |
二、核心配置(settings.json + 插件规则)
1. 打开配置文件(2种方式)
- 方式1(推荐):
ctrl+shift+p(windows)/cmd+shift+p(macos)→ 输入preferences: open settings (json)→ 回车 - 方式2:
ctrl+,(windows)/cmd+,(macos)打开设置ui → 点击右上角「打开设置(json)」图标
2. 全局基础配置(必加)
{
// 1. 全局默认格式化器(设为prettier)
"editor.defaultformatter": "esbenp.prettier-vscode",
// 2. 保存时自动格式化(核心!)
"editor.formatonsave": true,
// 3. 格式化选中代码(手动触发)
"editor.formatonselection": true,
// 4. 粘贴代码时自动格式化
"editor.formatonpaste": true
}3. 分语言指定格式化器(解决多插件冲突)
{
// 前端:统一用prettier
"[javascript]": { "editor.defaultformatter": "esbenp.prettier-vscode" },
"[typescript]": { "editor.defaultformatter": "esbenp.prettier-vscode" },
"[html]": { "editor.defaultformatter": "esbenp.prettier-vscode" },
"[vue]": { "editor.defaultformatter": "esbenp.prettier-vscode" },
"[css]": { "editor.defaultformatter": "esbenp.prettier-vscode" },
// python:指定black
"[python]": { "editor.defaultformatter": "ms-python.black-formatter" },
// java:内置格式化器
"[java]": { "editor.defaultformatter": "redhat.java" }
}4. prettier 自定义规则(项目根目录创建 .prettierrc)
在项目根目录新建 .prettierrc 文件,写入以下规则(按需修改):
{
"printwidth": 100, // 每行最大字符数
"tabwidth": 2, // 缩进2空格
"singlequote": true, // 使用单引号
"semi": true, // 语句末尾加分号
"trailingcomma": "es5", // es5兼容的尾随逗号
"arrowparens": "avoid", // 单参数箭头函数省略括号
"endofline": "lf" // 换行符用lf(unix风格)
}
5. 解决 prettier + eslint 冲突(前端必备)
安装依赖:npm install eslint-config-prettier eslint-plugin-prettier --save-dev
在 .eslintrc.js 中添加配置:
module.exports = {
extends: [
"eslint:recommended",
"plugin:prettier/recommended" // 关键:合并prettier规则
],
plugins: ["prettier"],
rules: {
"prettier/prettier": "error" // prettier规则作为eslint错误
}
};三、格式化快捷键(手动触发)
1. 全局默认快捷键(最常用)
- 格式化整个文档:
shift+alt+f(windows/linux)/shift+option+f(macos) - 格式化选中代码:先选中代码 → 按上述快捷键,或右键「格式化选中内容」
2. 命令面板触发(快捷键冲突时用)
ctrl+shift+p(windows)/cmd+shift+p(macos)- 输入:
- 格式化文档:
format document - 格式化选中:
format selection - 切换默认格式化器:
format document with...→ 选择插件
- 格式化文档:
3. 自定义快捷键(修改 keybindings.json)
- 打开:
ctrl+k ctrl+s(windows)/cmd+k cmd+s(macos) - 点击右上角「打开键盘快捷方式(json)」
- 添加配置(示例:设
ctrl+alt+l为格式化):
[
{
"key": "ctrl+alt+l",
"command": "editor.action.formatdocument",
"when": "editortextfocus"
}
]
四、完整操作流程(一步到位)
- 安装插件:优先装
prettier,再按需装语言专用插件 - 配置 settings.json:复制上述全局+分语言配置,保存生效
- 创建 .prettierrc:在项目根目录添加自定义规则
- 启用自动格式化:确保
editor.formatonsave: true,保存文件时自动格式化 - 手动触发:按
shift+alt+f一键格式化,或选中代码后格式化
五、常见问题解决
格式化不生效
- 检查:插件是否安装并启用、
defaultformatter是否正确配置、文件是否保存 - 修复:右键文件 →「格式化文档」→ 选择正确插件 → 设为默认
prettier 与 eslint 冲突
- 按上述「冲突解决」配置,安装
eslint-config-prettier屏蔽冲突规则
python 格式化失败
- 确保安装
python插件 +black formatter,并在[python]中指定默认格式化器
六、最终推荐配置(复制即用)
// settings.json 完整配置
{
"editor.defaultformatter": "esbenp.prettier-vscode",
"editor.formatonsave": true,
"editor.formatonselection": true,
"editor.formatonpaste": true,
"[javascript]": { "editor.defaultformatter": "esbenp.prettier-vscode" },
"[typescript]": { "editor.defaultformatter": "esbenp.prettier-vscode" },
"[html]": { "editor.defaultformatter": "esbenp.prettier-vscode" },
"[vue]": { "editor.defaultformatter": "esbenp.prettier-vscode" },
"[python]": { "editor.defaultformatter": "ms-python.black-formatter" },
"[java]": { "editor.defaultformatter": "redhat.java" },
"prettier.singlequote": true,
"prettier.tabwidth": 2,
"prettier.semi": true
}以上就是vscode代码格式化的完整解决方案的详细内容,更多关于vscode代码格式化的资料请关注代码网其它相关文章!
发表评论