必须显式配置terminal.integrated.defaultprofile.*才生效;windows不设则fallback到powershell,易致git、ls命令报错或乱码;确认方式:按ctrl+`看顶部标签页名,或在设置中搜索该配置项查看右侧值。

VSCode 的默认终端不是“全局自动适配”的,必须显式配置 terminal.integrated.defaultProfile.* 才能生效;Windows 上不设就大概率 fallback 到 PowerShell,导致 git、ls 等命令报错或乱码。
怎么确认当前默认终端是哪个
打开 VSCode → 按 Ctrl + ` 唤出终端 → 看顶部标签页名称(如 PowerShell、Git Bash、WSL)。如果没显示标签页,点右上角 + 旁的下拉箭头,当前高亮项就是默认终端。更可靠的方式是:在设置里搜 terminal.integrated.defaultProfile,看右侧值——它可能是字符串(如 "Git Bash")或完整路径(如 "C:\Program Files\Git\bin\bash.exe")。
Windows 下设 Git Bash 为默认终端的关键步骤
不是选中就行,要确保路径可执行、无空格陷阱、不被工作区覆盖:
- 先验证 Git Bash 能独立运行:桌面双击快捷方式,输入
echo $PATH看是否正常输出 - 在 VSCode 中执行命令面板
Terminal: Select Default Profile,从列表选Git Bash(注意不是bash) - 检查
settings.json是否生成了"terminal.integrated.defaultProfile.windows": "Git Bash" - 如果仍报
The terminal process failed to launch,手动指定路径:{ "terminal.integrated.profiles.windows": { "Git Bash": { "path": "C:\Program Files\Git\git-bash.exe" } }, "terminal.integrated.defaultProfile.windows": "Git Bash" }注意路径用双反斜杠、整个值用双引号包裹 - 删掉
.vscode/settings.json里可能存在的同名字段,否则它会覆盖用户级设置
为什么改了设置新开终端还是 PowerShell
常见原因就三个,且都和“新终端”这个前提强相关:
- 已有终端标签页没关:VSCode 不会重载已存在终端的 profile,必须点垃圾桶图标清空全部终端,再按
Ctrl + `新建 - 工作区配置覆盖:项目根目录下
.vscode/settings.json里写了terminal.integrated.defaultProfile.windows,优先级高于用户设置 - 路径含空格但没加引号:比如
C:Program FilesGitgit-bash.exe必须整个用双引号包住,否则启动失败并静默回退到 PowerShell
macOS / Linux 下让 zsh 真正成为默认终端
VSCode 不读取系统 $SHELL,必须显式声明:
- 先确认系统默认 shell 是 zsh:
echo $SHELL应输出/bin/zsh或/usr/bin/zsh - 在用户
settings.json中写:"terminal.integrated.defaultProfile.osx": "zsh"
(macOS)或"terminal.integrated.defaultProfile.linux": "zsh"
(Linux) - 如果用 Oh My Zsh 或自定义
$ZSH,确保zsh命令本身可执行,必要时在 profile 配置里加"args": ["-i"]启动交互模式
最常被忽略的是:改完配置后不关掉已有终端,或者没意识到工作区 .vscode/settings.json 会劫持全局设置。路径里的空格、反斜杠方向、平台后缀(.windows 不能漏)这些细节,错一个就回退到系统默认 shell。











