vscode启动黑屏/闪退应先运行code --verbose定位日志,卡在starting extension host多因扩展崩溃,unable to read user settings表明settings.json语法错误,日志中断则可能是用户数据目录权限被锁死。

VSCode启动黑屏/闪退,先跑code --verbose
VSCode 启动失败几乎从不报明确错误,直接黑屏或托盘图标闪一下就消失,这时候靠猜没用。必须加 --verbose 启动,它会把初始化每一步都打到终端里,关键线索就在最后一两行:
- 卡在
Starting extension host→ 大概率是某个插件崩溃,不是配置错 - 出现
Unable to read user settings→settings.json有非法 JSON(比如多逗号、单引号、数字加引号) - 日志末尾突然中断,没报错也没后续 → 用户数据目录权限被锁死(常见于 OneDrive 同步中途断开、或手动改过
%APPDATA%\Code所有权)
Windows 下打开命令提示符,cd 到任意路径,执行:code --verbose
macOS/Linux 直接终端运行即可。别用快捷方式双击——那会绕过控制台输出。
插件导致启动失败,用code --disable-extensions验证
90% 的白屏/闪退问题根源在扩展,但 VSCode 不会告诉你哪个插件坏了。最干净的验证方式是禁用全部扩展启动:
- 终端执行
code --disable-extensions,能进就是扩展问题 - 接着用
code --disable-extensions --user-data-dir /tmp/vscode-test,排除旧缓存干扰 - 确认是扩展后,别一个个重装,而是:关闭所有窗口 → 打开命令面板(
Ctrl+Shift+P)→ 输入Extensions: Show Enabled Extensions→ 禁用一半 → 重启 → 重复直到定位到具体插件名
特别注意那些依赖本地二进制的插件(如 ms-python.python、esbenp.prettier-vscode),它们常因 python.defaultInterpreterPath 指向不存在路径,或 prettier.path 权限不足而静默失败。
权限不足报“Access is denied”,别急着点“是”提权
Windows 上弹 UAC 窗口或日志里出现 Access is denied,90% 不是 VSCode 要管理员权限,而是它或某个插件正往受保护路径写东西:
- 路径含
C:\Program Files\Microsoft VS Code\extensions\或%USERPROFILE%\OneDrive\→ 说明你装的是 System Installer 版本,或工作区在 OneDrive 里 - 插件日志里出现
EACCES且路径指向\Downloads\、\mnt\c\(WSL)、/Users/Shared/→ 这些是系统策略硬性拦截区,不是你缺权限,是根本不能写 - PowerShell 报
Execution Policy错误 → 运行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser即可,别动LocalMachine级别
真正解法是换 User Installer 版本重装(安装包名含 -user-setup),它把所有数据存在 %LOCALAPPDATA% 下,全程无需管理员权限;再把工作区移到 D:\projects 这类干净路径。
settings.json 格式错一个字符,VSCode 就静默拒载
VSCode 启动第一件事是解析 settings.json,语法错一点(哪怕只是多一个逗号),它就不继续了——没报错,只给你一个空白窗口。这不是 bug,是严格 JSON 解析行为:
- 错误示例:
"editor.fontSize": "14"(数字不该加引号)、"files.associations": { "*.py": "python", }(末尾逗号非法) - 正确做法:关掉所有 VSCode 进程,把
settings.json重命名为settings.json.bak,再启动。能进,就说明原文件有问题 - 编辑时务必用 VSCode 自带的
Preferences: Open Settings (JSON)(Ctrl+Shift+P输入),它实时校验语法、高亮错误
很多人卡在这一步很久,因为错误太隐蔽:它不提示,不报错,只拒绝加载。最省事的排查路径就是先清空配置,再逐段恢复。











