工作区设置存于项目根目录的.vscode/settings.json文件中,需手动创建,用于覆盖用户级和默认设置,仅对当前项目生效。

VSCode 工作区设置就是 .vscode/settings.json 文件里定义的、只对当前文件夹(项目)生效的配置,它会覆盖用户级设置和默认设置。
工作区设置存哪儿?怎么创建
它必须放在项目根目录下的 .vscode/settings.json 路径。VSCode 不会自动创建这个文件,得手动建:
- 在项目根目录新建文件夹
.vscode - 在该文件夹内新建文件
settings.json - 写入合法 JSON(空对象
{}也行)
创建后,VSCode 状态栏右下角会显示「工作区」字样,说明已识别。
哪些设置适合放工作区
和项目强相关的、不希望污染全局的配置才该进工作区。比如:
-
"editor.tabSize": 2—— 某些项目强制用 2 空格缩进,而你个人习惯是 4 -
"eslint.enable": true—— 只在这个项目启用 ESLint,其他项目不用 -
"python.defaultInterpreterPath": "./venv/bin/python"—— 指向项目本地虚拟环境,避免误用系统 Python -
"files.exclude": { "**/__pycache__": true }—— 隐藏本项目特有的临时目录
注意:"workbench.colorTheme" 或 "window.zoomLevel" 这类 UI/体验类设置放进工作区毫无意义,VSCode 会忽略它们。
工作区设置 vs 用户设置优先级
VSCode 设置有三层:默认 用户设置 工作区设置。但要注意几个关键细节:
- 布尔型或字符串型设置(如
editor.formatOnSave)会被直接覆盖 - 对象型设置(如
files.associations)是**合并**而非覆盖:工作区里写的键会覆盖用户设置里的同名键,但新增的键仍保留 - 数组型设置(如
emeraldwalk.runonsave的命令列表)通常**不合并**,工作区里写了就完全替代用户设置 - 某些扩展(如 Prettier)有自己的配置层级逻辑,可能读取
.prettierrc优先于工作区设置
{
"editor.formatOnSave": true,
"files.associations": {
"*.ts": "typescript",
"*.vue": "vue"
}
}
容易被忽略的陷阱
很多人配完没效果,往往卡在这几处:
- 文件路径写错:
.vscode必须是项目**最外层文件夹**下的子目录,嵌套太深(比如放在src/.vscode)无效 - JSON 格式错误:多一个逗号、少一个引号,VSCode 不报错但整个
settings.json失效;可右键文件 → “格式化文档”辅助检查 - 设置了但被扩展覆盖:比如你开了
editor.formatOnSave,但项目里有.editorconfig或.prettierrc,实际格式化行为由后者决定 - 符号链接项目:如果用
ln -s创建了软链打开项目,VSCode 可能无法正确识别工作区,建议用真实路径打开










