重置 VSCode 终端默认 Shell 本质是删除 terminal.integrated.defaultProfile.* 配置项,使 VSCode 回退至自动探测逻辑;需手动清除用户及工作区 settings.json 中对应字段,并关闭所有终端后新建验证。

重置 VSCode 终端默认 Shell,本质是清除或覆盖当前生效的 terminal.integrated.defaultProfile.* 配置,让 VSCode 回退到自动探测逻辑——不是“恢复出厂”,而是删掉你手动指定的偏好,让它重新猜一次。
删掉 settings.json 里的 defaultProfile 配置项
VSCode 的终端默认行为由配置项决定,而不是 UI 界面选中状态。即使你在设置界面里把下拉菜单改回 “Auto” 或清空,settings.json 里残留的键值仍会强制生效。
- 按
Ctrl + Shift + P→ 输入Preferences: Open Settings (JSON)打开用户级配置 - 搜索
terminal.integrated.defaultProfile,删掉整行(包括 Windows/macOS/Linux 对应的完整字段) - 如果项目目录下有
.vscode/settings.json,也打开检查——工作区配置优先级高于用户配置,它里面如果有同名字段,必须一并删掉 - 保存后,关闭所有终端 tab(关键!已有终端不会刷新 profile),再按
Ctrl + `新建一个
确认是否真被重置:看终端启动时加载了哪个 shell
重置不是“看不见就等于成功”。VSCode 自动探测的结果取决于你系统里实际装了什么、路径是否在 PATH 中、以及 profile 是否被正确注册。
- 新建终端后,顶部标签页显示的名字就是当前生效的 profile 名(如
PowerShell、Git Bash、Command Prompt) - 如果看到的是
PowerShell,说明它被自动识别为首选(Windows 默认行为),不代表失败——只是你没装 Git Bash / WSL,或它们的路径没被 VSCode 扫描到 - 想验证 VSCode 能识别哪些 shell?运行命令面板里的
Terminal: Select Default Profile,弹出的列表就是当前可选的全部 profile
重置后终端还是不对?常见干扰源
删了配置 ≠ 一切归零。有些隐性配置或环境状态会让 VSCode “坚持”用某个 shell。
-
terminal.integrated.profiles.windows如果存在且定义了"PowerShell"并设置了"args": ["-NoExit"],即使没设 defaultProfile,VSCode 仍可能 fallback 到它 - 组织策略或组策略禁用了
wsl.exe或bash.exe,VSCode 探测时失败,就会跳过这些选项,只留下 PowerShell 和 cmd - WSL 发行版未注册或损坏:
wsl -l -v在 Windows Terminal 里跑不通,VSCode 就不会把它当有效 profile - Git Bash 安装路径含空格但没加引号(如
C:\Program Files\Git\bin\bash.exe),VSCode 启动失败后静默回退到 PowerShell,不报错也不提示
重置的关键不在“删得多”,而在“删得准”——只动 defaultProfile 相关字段,别误删 profiles 定义;同时必须关掉所有终端实例,否则你永远看不到变化。











