settings.json 默认不显示且需手动创建:用户级位于系统配置目录,工作区级在打开文件夹的 .vscode/settings.json;推荐用 Ctrl+, → {} 图标打开,VSCode 自动判断层级并创建。

settings.json 文件在哪,为什么找不到
VSCode 的 settings.json 不是独立文件,它依赖当前工作区状态:没有打开文件夹时只有用户级配置,打开文件夹后才可能生成工作区级 settings.json。很多人搜不到,是因为它默认不显示——根本没被创建过。
- 用户级配置路径:
~/.config/Code/User/settings.json(Linux)、%APPDATA%\Code\User\settings.json(Windows)、~/Library/Application Support/Code/User/settings.json(macOS) - 工作区级配置在你打开的文件夹根目录下:
.vscode/settings.json,但这个文件要手动创建或通过 UI 触发保存才会出现 - 直接按
Ctrl+,(Cmd+,)打开设置界面,右上角点「打开设置 (JSON)」图标({}),VSCode 会自动创建并打开对应层级的settings.json
用快捷键打开 settings.json 比手动找路径更可靠
手动拼路径容易写错、权限不足或路径被重定向(比如 WSL 下 Windows VSCode 找不到 Linux 配置)。快捷方式走的是 VSCode 内部配置解析逻辑,能自动判断该编辑用户级还是工作区级。
- 确保焦点在编辑器内,按
Ctrl+,→ 右上角点「打开设置 (JSON)」 - 如果已打开文件夹且希望写工作区配置,先确认左下角状态栏显示「工作区」而非「用户」
- 快捷键失效?检查是否被输入法或系统快捷键拦截;macOS 上注意 Caps Lock 是否开启导致
Cmd+,不响应
settings.json 编辑后不生效的常见原因
改完保存,发现设置没起作用,大概率不是语法问题,而是作用域冲突或覆盖逻辑没理清。
- 用户级和工作区级同名配置项,工作区级优先级更高——但如果你在用户级写了
"editor.tabSize": 2,又在工作区级写了"editor.tabSize": 4,实际生效的是 4;反过来则不会覆盖 - 某些设置(如
files.associations)只在 VSCode 启动时读取一次,修改后需重启窗口(Developer: Reload Window) - 扩展自带的设置项(比如 Prettier 的
prettier.semi)必须先安装对应扩展,否则 VSCode 会静默忽略该字段 - JSON 格式错误会导致整个文件加载失败,VSCode 会在底部状态栏标红提示「Invalid configuration file」,鼠标悬停可看具体哪行出错
什么时候该用 settings.json,而不是图形界面
图形界面(Settings UI)适合快速开关、搜索调整;settings.json 是唯一能精确控制嵌套结构、数组值、正则匹配或条件逻辑的地方。
- 需要给不同文件类型设不同缩进:
"[javascript]": { "editor.tabSize": 2 } - 批量关联文件后缀:
"files.associations": { "*.tpl": "html", "*.ftl": "html" } - 禁用某扩展对特定语言的格式化:
"[typescript]": { "editor.formatOnSave": false } - 路径中含空格或特殊字符时,UI 可能自动加引号但不生效,手写 JSON 更可控
复杂嵌套或数组操作一旦在 UI 里点错位置,很容易把整个对象删掉,而 JSON 编辑器有语法高亮和校验,反而更安全。


















