VSCode默认终端不生效的根本原因是profile名称不匹配、平台后缀错误或未关闭已有终端;必须确保terminal.integrated.defaultProfile.windows值严格等于profiles.windows中定义的key字符串,且改配置后关闭所有终端再新建。

VSCode 默认终端不按你选的 Shell 启动,根本原因不是没设置,而是 profile 名字对不上、平台后缀写错、或已有终端没关干净。
terminal.integrated.defaultProfile.windows 值必须严格匹配注册名
VSCode 不认路径、不认显示名、不认缩写——只认 terminal.integrated.profiles.windows 里定义的 key 字符串。比如你手动加了这个 profile:
"Git Bash": {
"path": "C:\Program Files\Git\bin\bash.exe",
"args": ["--login", "-i"]
}
那 terminal.integrated.defaultProfile.windows 就必须填 "Git Bash",不能是 "bash"、"git-bash" 或 "C:\Program Files\Git\bin\bash.exe"。
- 大小写、空格、括号、连字符全部敏感:列表里显示
PowerShell (pwsh),你就得写"PowerShell (pwsh)" - WSL 发行版名必须带版本号:
"Ubuntu-22.04"≠"Ubuntu",用wsl -l -v确认实际名称 - 如果 profile 是你手动注册的,先查
terminal.integrated.profiles.windows设置项,再填 defaultProfile
Windows 平台必须用 .windows 后缀键名
新版 VSCode(1.84+)已弃用 terminal.integrated.shell.windows,也**不接受**通用键名 terminal.integrated.defaultProfile。写错就静默失效,终端照旧开 cmd。
- 正确键名只有:
terminal.integrated.defaultProfile.windows - Linux/macOS 下才用
.linux或.osx,Windows 上写它们完全无效 - 工作区级
.vscode/settings.json会覆盖用户级设置,优先级更高,务必检查是否被覆盖
改完设置后必须关闭所有终端再新建
VSCode 不会在已有终端里“热替换” shell。哪怕你改对了所有配置,只要终端 tab 还开着,Ctrl + ` 打开的仍是老进程。
- 快捷操作:按
Ctrl + Shift + `关掉当前终端 → 再按一次打开新终端 - 右上角下拉菜单里显示的当前 profile 名称,才是真实生效的;顶部标签页文字只是参考
- 如果仍不对,右键终端标签页 → “Select Default Profile”,看提示“已保存到 [用户/工作区]”——若显示“工作区”,说明项目根目录下
.vscode/settings.json覆盖了你的配置
Git Bash 启动黑屏或报 /dev/tty 错误
这不是配置错误,是 Git Bash 缺少交互式登录参数。VSCode 默认启动时没传 --login -i,导致它无法初始化 tty 环境。
- 必须在
terminal.integrated.profiles.windows中显式补全args: -
"args": ["--login", "-i"]—— 注意是数组,每个参数单独一项,不能合并成字符串 - 路径含空格必须用双引号包裹整个路径,否则启动失败后静默 fallback 到 PowerShell
- 若公司策略禁用
bash.exe,先在 CMD 里运行该路径验证是否能弹出窗口
最易被忽略的是 profile 名字和平台后缀的严格匹配,以及“关终端”这一步——很多人改完 settings.json 就直接 Ctrl + `,结果什么都没变。名字对、后缀对、终端关干净,三者缺一不可。


















