重置 vscode 所有自定义设置只有两种有效方式:清空 settings.json 为 {}(快但可能遗漏问题),或重命名整个 user 目录(彻底但丢失快捷键、代码片段和 ui 状态);前者解决 90% 非法 json 导致的异常,后者清除 keybindings.json、snippets、storage.json 等残留问题,且必须先关闭 settings sync 并彻底退出进程。

重置 VSCode 所有自定义设置没有“一键还原”按钮,真正起效的只有两种方式:清空 settings.json 为 {},或重命名整个 User 目录;前者快但可能漏掉问题,后者彻底但会丢掉快捷键、代码片段和 UI 状态。
清空 settings.json 是最快见效的第一步
90% 的配置异常(字体崩了、自动保存失效、主题不生效)都源于 settings.json 里的非法 JSON —— 比如用了 // 注释、多了一个逗号、引号没闭合,或者写了已卸载插件的字段(如 "prettier.semi": false 但 Prettier 插件早已删掉)。VSCode 不报错,而是静默跳过整个文件,你改了半天根本没加载。
- 用
Ctrl + Shift + P(Windows/Linux)或Cmd + Shift + P(macOS)打开命令面板 - 输入并选择
Preferences: Open Settings (JSON) - 全选内容 → 替换为
{}→Ctrl + S或Cmd + S保存 -
必须彻底退出 VSCode(macOS 查 Activity Monitor 确认无
Code Helper进程,Windows 查任务管理器) - 重启后若恢复正常,说明问题就在这儿;否则继续往下
重命名 User 目录才是真正的“出厂重置”
只动 settings.json 解决不了 keybindings、snippets、UI 缓存或插件本地状态的问题。比如快捷键全失效、侧边栏消失、终端面板卡在奇怪位置、中文界面变方块——这些往往来自 keybindings.json、locale.json 或二进制缓存 storage.json 的损坏。
- 确认 VSCode 已完全退出(进程清空)
- 找到对应平台的
User目录:
Windows:%APPDATA%\Code\User\
macOS:~/Library/Application Support/Code/User/
Linux:~/.config/Code/User/ - 把整个
User文件夹重命名为User_backup(不是删除,留作备用) - 重启 VSCode,它会自动生成全新
User目录和空的settings.json、keybindings.json - 插件不会丢(它们存在
extensions/目录),但所有自定义快捷键、代码片段、登录状态、折叠状态都会清空——这是预期行为,不是故障
Settings Sync 不关,重置等于白干
很多人删完 User 目录重启,发现设置又回来了。不是 VSCode 出问题,是 Settings Sync 在后台自动从 GitHub/GitLab 账户拉取了上次同步的旧配置。这不是 bug,是设计如此。
- 操作前务必先关掉 Sync:
左下角齿轮图标 →Settings Sync: Turn Off→ 点击Turn Off and Reset Local State - 如果已经重置失败,检查是否残留登录态:命令面板执行
Accounts: Sign Out再试 - 重置完成后想重新启用 Sync,等本地确认干净再手动开,避免旧配置覆盖回来
别信“Reset Setting”按钮和 Developer: Reload Window
右上角那个“重置为默认值”按钮,只重置当前高亮的单个设置项,不是全部;Developer: Reload Window 只刷新界面,不触碰任何配置文件;Developer: Reset User Data 命令虽存在,但它在部分版本中行为不稳定,且仍受 Sync 干扰,不如手动操作可控。
- 想验证是不是纯配置问题?启动时加参数:
macOS/Linux:code --user-data-dir=/tmp/vscode-test
Windows:code --user-data-dir="%TEMP%\vscode-test" - 临时禁用所有扩展:
code --disable-extensions,看是否恢复基础功能 - 工作区配置(
.vscode/settings.json)也要一并检查或删掉,它优先级高于用户设置
最常被忽略的是:删之前没关 Sync,或者没彻底退出进程导致新旧配置混用;重命名 User 后以为快捷键还能用,结果发现它们根本不在新目录里——那是你主动积累的数据,不是“默认设置”的一部分。











