必须先按ctrl+,(windows/linux)或cmd+,(macos)打开图形化设置界面,再点击右上角{}图标才能可靠打开settings.json;手动找路径易错层,反复按快捷键无法切换,且未点{}仅停留在图形界面。

Ctrl+, 之后必须点 {} 才能进 settings.json
按 Ctrl+,(Windows/Linux)或 Cmd+,(macOS)打开的只是图形化设置界面,不是 settings.json。不点右上角那个 {} 图标,就永远在 UI 层,改的配置虽会同步写入文件,但你根本看不到 JSON 结构、无法编辑嵌套路径或手动修复语法错误。
常见错误包括:反复按 Ctrl+, 以为能“切回” JSON —— 它不会切换,两个视图完全独立;或者误以为点开设置界面就等于打开了 JSON 文件,结果在 UI 里调了半天缩进却没生效,因为实际项目需要的是工作区级 .vscode/settings.json,而 UI 默认编辑的是用户级配置。
- 焦点必须在编辑器主窗口内,否则快捷键可能被终端、Vim 插件或输入法拦截
- 如果点
{}没反应,大概率是配置被锁:远程容器只读、组策略限制、或文件系统权限拒绝访问 - 左下角状态栏会显示当前编辑的是「用户」还是「工作区」——这个提示不能忽略,它直接决定你改的配置是否对当前项目生效
Preferences: Open Settings (JSON) 是最稳的命令面板入口
当 UI 状态混乱(比如插件覆盖了右上角图标、多窗口焦点错位),Ctrl+, + {} 可能失效。此时唯一可靠的方式是用命令面板:Ctrl+Shift+P(macOS 是 Cmd+Shift+P),输入 Preferences: Open Settings (JSON) 回车。
这个命令绕过所有 UI 渲染逻辑,直接加载当前上下文该用的 settings.json:打开文件夹时读 .vscode/settings.json,没打开项目时读用户级路径,且自动确保文件可写。
- 不要手动拼路径:
%APPDATA%\Code\User\settings.json(Windows)、~/Library/Application Support/Code/User/settings.json(macOS)、~/.config/Code/User/settings.json(Linux)——这些路径在 WSL、企业域控、或双系统下极易错层或权限报错 - 命令面板方式还能避免“打开错文件”的陷阱:比如你在项目里按
Ctrl+,后没注意左下角状态栏,直接点{},结果编辑的是用户级配置,而项目需要的 ESLint 路径、Prettier 配置全都没生效
keybindings.json 和 settings.json 是两套独立文件
想改快捷键,别去 settings.json 里瞎填 —— 它只管编辑器行为、语言支持、外观等,和快捷键无关。keybindings.json 是单独的配置文件,路径和加载逻辑都不同。
正确入口是:Ctrl+Shift+P → 输入 Preferences: Open Keyboard Shortcuts (JSON)。VSCode 会打开一个空数组 [](如果文件不存在),你所有的自定义快捷键都得塞进这个数组里。
- GUI 界面(
Ctrl+K Ctrl+S)只能做简单增删,一旦涉及when条件、插件冲突、或系统级按键拦截(如搜狗拼音吞掉Ctrl+;),就必须靠 JSON 手动控制 - 禁用默认快捷键不能删条目,也不能写
"command": "",得用负号前缀:{"key":"ctrl+k ctrl+i","command":"-editor.action.showHover"} - 非美式键盘用户务必在
settings.json里加"keyboard.dispatch":"keyCode",否则Ctrl+;类组合会被识别成Ctrl+:,自定义彻底失效
工作区 settings.json 的存在感很弱,但影响极大
很多人根本不知道自己该用哪个 settings.json。VSCode 默认只显示用户级配置,除非你已经在资源管理器里打开了某个文件夹,且该文件夹根目录下存在 .vscode/settings.json —— 这时左下角才会出现「工作区」标签,{} 图标点开的才是项目专属配置。
这个文件决定了 ESLint 路径、TypeScript 版本、Prettier 规则是否生效。手误把它删了,或改错格式(比如多了一个逗号、少了一个引号),整个项目的语言服务可能直接罢工,但 VSCode 不报错,只默默不加载。
-
.vscode/settings.json是 Git 可追踪的,团队规范靠它落地;用户级settings.json则不该放项目相关配置 - 编辑时留意右下角状态栏的「JSON 错误」提示 —— 它只在语法出错时闪一下,稍不注意就错过
- 修改后记得保存(
Ctrl+S),VSCode 不会自动重载工作区配置,改完不保存等于没改










