直接删除 settings.json 中非法内容最有效,VSCode 会静默跳过整个文件;正确做法是清空内容为{}并重启;彻底重置需重命名User目录、关闭Settings Sync,并用code --extensions-dir迁移插件路径。

直接删 settings.json 里非法内容最有效
VSCode 不会报错,但会静默跳过整个 settings.json 文件——只要你写了 // 注释、多了一个逗号、引号没闭合,或者引用了已卸载插件的配置(比如 "prettier.requireConfig": true 但 Prettier 没装),它就当这文件不存在。你改十次,全白改。
正确做法是:
- 彻底退出 VSCode(macOS 看 Activity Monitor,Windows 查任务管理器,确认无
Code Helper进程) - 按
Ctrl + Shift + P(Win/Linux)或Cmd + Shift + P(macOS),输入并选择Preferences: Open Settings (JSON) - 把全部内容删光,只留
{}——不是留空行,也不是删文件本身 -
Ctrl + S保存,再重启
多数字体崩、自动保存失效、主题不生效问题,到这里就解决了。
重命名 User 目录才是真·重置
清空 settings.json 只解决了一半。真正卡死、UI 空白、快捷键全乱、侧边栏消失,大概率是 keybindings.json、snippets/ 下某个文件语法错误,或者 storage.json(存 UI 布局状态的缓存)写崩了。
这时候必须处理整个 User 目录:
- 确认 VSCode 完全退出
- 找到对应路径:
— Windows:%APPDATA%\Code\User\
— macOS:$HOME/Library/Application Support/Code/User/
— Linux:$HOME/.config/Code/User/ - 把整个
User文件夹重命名为User_backup(别删,先备份) - 重启 VSCode,它会自动生成全新
User目录和空的settings.json
注意:插件本体还在 extensions/ 目录里,不会丢;但所有自定义快捷键、代码片段、登录状态、面板位置都会清空——这是设计如此,不是 bug。
别忘了关掉 Settings Sync
很多人重命名 User 目录后一重启,发现设置又回来了。不是 VSCode 故障,是 Settings Sync 在后台自动从 GitHub/GitLab 账户拉取了上次同步的配置。
关 sync 的操作必须在重置前完成:
- 左下角齿轮图标 →
Settings Sync: Turn Off - 点
Turn Off and Reset Local State(关键!只关不重置,重启后照样同步)
sync 开着的时候,哪怕你删了整个 User 目录,几秒内所有旧配置就原样恢复——包括你忘了的、别人共享给你的、旧项目遗留的。
code --extensions-dir 是改插件路径的唯一可靠方式
插件默认装在 C 盘(C:\Users\{user}\.vscode\extensions),占空间还拖慢系统。VSCode 没有图形界面选项改这个路径,只能靠命令行参数。
实操步骤:
- 先把现有
extensions文件夹剪切到目标位置,比如D:\vscode-ext\extensions - 命令行运行:
code --extensions-dir "D:\vscode-ext\extensions" - 验证成功:打开扩展面板,已安装插件应全部可见
- 永久生效:右键桌面快捷方式 → 属性 → 目标栏末尾加空格 +
--extensions-dir "D:\vscode-ext\extensions"
注意:code 命令必须可用(可通过 code -v 验证);若不可用,先在 VSCode 命令面板执行 Shell Command: Install 'code' command in PATH。
真正难搞的不是删文件,而是删完之后不知道哪些配置被 sync 拉回来了、哪些插件悄悄往 globalStorage 写了残留数据、哪些 when 条件绑定的快捷键在新版本里已失效。重命名 User_backup 后别急着删,留着翻两眼 keybindings.json 或 snippets,比重配省半小时。


















