必须使用terminal.integrated.defaultProfile.windows键名,写错或遗漏.windows后缀将被完全忽略;工作区设置会静默覆盖用户设置;Profile值须为下拉菜单中显示的名称(如“Git Bash”),不可填路径;修改后需关闭所有终端再新建才能生效。

terminal.integrated.defaultProfile.windows 写错就无效
Windows 下必须用 terminal.integrated.defaultProfile.windows,写成 terminal.integrated.defaultProfile 或 .linux 会被 VSCode 完全忽略。改完后不生效,八成是键名拼错了。打开 settings.json 直接检查这一行是否存在、是否带 .windows 后缀、值是不是字符串(比如 "Git Bash"),而不是路径或命令。
工作区设置会静默覆盖用户设置
即使你在用户设置里改对了,只要当前项目根目录下有 .vscode/settings.json,且里面也写了 terminal.integrated.defaultProfile.windows,VSCode 就会优先用它——而且不会提示你被覆盖了。解决办法很简单:
- 按
Ctrl + ,打开设置,搜terminal integrated default profile,看右侧显示“已设置于 工作区”还是“用户” - 如果是工作区,直接删掉
.vscode/settings.json里对应那行(整行包括逗号) - 保存后关掉所有终端 tab,再按
Ctrl + `新建一个
Profile 名字不对,终端就回退到 PowerShell
VSCode 下拉菜单里显示的 “Git Bash” 或 “Ubuntu-22.04”,才是 profile 的真实 name;不能填路径,也不能填 bash.exe 这种可执行文件名。常见错误:
- 填了
"C:\Program Files\Git\bin\bash.exe"→ 启动失败,自动 fallback 到 PowerShell - WSL 选了 “Ubuntu” 而不是 “Ubuntu-22.04” → 报错或空白
- Git Bash 安装在非标路径(如
C:ToolsGit),VSCode 没自动发现 → 下拉菜单里压根不显示,必须手动注册 profile
手动注册示例(加进 settings.json):
"terminal.integrated.profiles.windows": {
"Git Bash": {
"path": "C:\Tools\Git\git-bash.exe",
"args": ["--login"]
}
}
改完配置必须关掉所有终端再新建
VSCode 不会把新配置热推给已存在的终端进程。哪怕你改对了所有字段,只要旧终端标签页还开着,它就永远是原来的 Shell。这是最常被忽略的操作环节:
- 点击终端右上角垃圾桶图标清空全部会话
- 确认所有终端 tab 都关闭(包括隐藏在折叠面板里的)
- 再按
Ctrl + `新建——这时才真正走新配置
如果仍打不开,打开开发者工具(Ctrl + Shift + P → Developer: Toggle Developer Tools),看 Console 里有没有 spawn ENOENT,那说明指定的 profile 路径根本不存在,得回去核对安装位置或权限。











