VSCode启动失败多因配置、扩展或权限冲突,应先运行code --verbose --disable-extensions查日志,重点排查用户数据目录权限、settings.json缺失、扩展崩溃及残留进程等问题。
VSCode 启动失败,大概率不是软件损坏,而是配置、扩展或权限层面的局部冲突——直接重装往往治标不治本。
code --verbose 输出的日志线索VSCode 自带诊断能力,启动时加 --verbose 参数能暴露真实卡点。Windows 用户建议用 PowerShell 运行:
code --verbose --disable-extensions
关键看终端里是否出现以下内容:
Failed to get user data dir → 权限或路径中含非法字符(如中文、空格、emoji)Cannot read property 'onDidChange' of undefined → 某个扩展的激活逻辑在主进程崩溃ENOENT: no such file or directory, open '/path/to/User/settings.json' → 配置文件被误删或路径指向不存在位置约 65% 的启动失败由扩展引起,尤其是那些监听窗口生命周期、注入全局脚本或修改 vscode:// 协议处理的扩展(如 Remote - SSH、GitLens、Bracket Pair Colorizer)。
code --disable-extensions 启动,确认是否恢复Ctrl+Shift+P → 输入 Extensions: Show Enabled Extensions,逐一禁用最近安装或更新过的扩展
别注意名称含 theme、icon、language 的扩展,它们常在启动早期加载资源,容易因字体/图标缓存损坏而阻塞当 settings.json、keybindings.json 或扩展缓存损坏时,VSCode 可能反复尝试读取错误结构导致无限重试。此时应手动迁移而非删除整个 User 目录。
code --user-data-dir 不会输出,但可通过命令查到:%APPDATA%\Code\User~/Library/Application Support/Code/User~/.config/Code/User
User.bak,再运行 code --disable-extensions —— VSCode 会新建干净的 User 目录User.bak/settings.json 中的自定义项(如 "editor.fontSize")复制过去,**不要直接覆盖整个文件**Code.exe 进程再启动VSCode 在异常退出后,常有 Code.exe 子进程(如 renderer、shared-process)滞留后台,占用端口或锁住配置文件,导致新实例无法初始化。
Code.exe 进程Get-Process code -ErrorAction SilentlyContinue | Stop-Process -Force
真正难定位的问题,往往藏在「扩展 + 自定义 argv.json + 系统代理设置」三者叠加的边界上。别急着删配置,先用 --verbose 抓第一行报错,它几乎总在告诉你具体哪个环节断了。
# linux
# undefined
# ssh
# 先用
# 配置文件
# 治标不治本
# 尤其是
# 一句
# 告诉你
# 右键
# 可在
# 不存在
# Property
# Directory
# vscode
# js
# git
# json
# windows
# app
# 端口
# mac
# ai
# macos
# win
# 自定义