必须手动配置terminal.integrated.defaultprofile.windows为严格匹配的"profile名"(如"powershell"),并确认未被工作区/远程设置覆盖,重启vs code后新建终端显示ps c:\>才真正生效。

改默认终端不是“改一个开关”就完事,而是要确认 VS Code 真正读取的是哪一级配置、PowerShell 是否被正确识别、以及有没有被更高优先级的设置覆盖。直接改 terminal.integrated.defaultProfile.windows 很可能无效——这是最常踩的坑。
Terminal: Select Default Profile 为什么点完没反应?
这个命令面板选项看似直接,但它的行为取决于当前环境是否已注册 PowerShell profile:
- 如果列表里压根没有
PowerShell(注意不是PowerShell (x64)或Windows PowerShell),说明 VS Code 没检测到可用的 PowerShell 实例——哪怕你系统里装了 PowerShell 7 或自带的 5.1,也得重启 VS Code 才能重新扫描 - 如果列表里有多个 PowerShell 项,只选带
PowerShell字样的那个;旧版 ID(如powershell.exe)在新版 VS Code 中已被弃用,选了也不生效 - 执行该命令后,右下角终端面板左上角会显示当前 profile 名,并提示“已保存到 [用户/工作区]”,必须看到这个提示才算真正写入
settings.json 里怎么写才不被忽略?
手动编辑 settings.json 是最可控的方式,但字段名和值必须严格匹配:
- 键名是
"terminal.integrated.defaultProfile.windows",不是shell.windows(后者已废弃多年,设了也无效) - 值必须是字符串
"PowerShell",不能是"powershell"、"pwsh"或路径,大小写敏感 - 如果同时想保留 CMD 供临时切换,得完整定义 profiles,否则
Command Prompt可能消失:{ "terminal.integrated.defaultProfile.windows": "PowerShell", "terminal.integrated.profiles.windows": { "PowerShell": { "path": "pwsh.exe", "args": [] }, "Command Prompt": { "path": "cmd.exe" } } }
为什么改了还是开 CMD?检查这三处覆盖
VS Code 终端配置有明确优先级:远程 > 工作区 > 用户。哪怕你用户设置写对了,也可能被下面任一情况覆盖:
- 当前项目根目录下存在
.vscode/settings.json,且里面含"terminal.integrated.defaultProfile.windows"字段——删掉或改掉它 - 你连的是 WSL 远程,此时
defaultProfile.windows完全不生效,得用defaultProfile.linux配bash或zsh - 公司策略组(GPO)或某些安全软件锁死了终端配置,表现为设置项变灰不可编辑;此时命令面板里的
Terminal: Select Default Profile也会失效
真正起效的标志只有一个:新建终端后提示符是 PS C:\xxx>,而不是 C:\xxx>。别信设置界面的下拉菜单选中状态,它只是 UI 反馈,不一定代表实际生效。











