VSCode在macOS上需手动配置Zsh为默认终端:先用which zsh获取真实路径,再在settings.json中设置terminal.integrated.profiles.osx和terminal.integrated.defaultProfile.osx,并添加"-l"参数确保加载~/.zshrc,同时删除已废弃的shell.osx旧配置。
macos 上 vs code 终端默认不自动用系统 zsh,即使你已通过 chsh -s $(which zsh) 设为系统默认 shell,vs code 仍可能启动 bash 或报错。关键不是“改系统”,而是让 vs code 明确知道:用哪个 zsh 可执行文件、以登录模式启动、并加载你的 ~/.zshrc。
确认 Zsh 已正确安装并获取真实路径
打开 macOS 自带终端(不是 VS Code 内置终端),运行:
-
zsh --version—— 确保有输出(如zsh 5.9或更高) -
which zsh—— 记下结果,常见是/bin/zsh(macOS Ventura 及以前)或/usr/bin/zsh(Sonoma 及以后) -
cat /etc/shells | grep zsh—— 确认该路径在合法 shell 列表中
在 settings.json 中手动配置 Zsh 为默认 profile
VS Code 设置界面的下拉菜单有时不可靠,推荐直接编辑 JSON 配置:
- 按下 Cmd + , 打开设置 → 点击右上角「打开设置(JSON)」图标
- 添加以下两段(注意字段名区分大小写,且只配
osx,不要写linux或windows):
"terminal.integrated.profiles.osx": {
"zsh": {
"path": "/usr/bin/zsh",
"args": ["-l"]
}
},
"terminal.integrated.defaultProfile.osx": "zsh"
⚠️ 把 "path" 替换为你上一步查到的真实路径(比如 /bin/zsh);"-l" 表示 login shell,否则 ~/.zshrc 不会自动加载。
删除旧版配置,避免冲突
检查 settings.json 是否还存在已废弃的字段,如有请整行删掉:
"terminal.integrated.shell.osx""terminal.integrated.shellArgs.osx"
这些是 VS Code 1.78 之前的老写法,和新 profile 机制不兼容,留着会导致配置失效或报错 “Path to shell executable does not exist”。
重启终端并验证是否生效
配置保存后必须执行以下操作才真正生效:
- 关闭 VS Code 中所有已打开的终端标签页(包括隐藏的)
- 按 Cmd + Shift + ` 新建终端
- 输入
echo $SHELL—— 应显示/usr/bin/zsh(或你配的路径) - 输入
echo $ZSH—— 如果装了 Oh My Zsh,应有输出;再试ls -la ~/.zshrc看是否能正常读取
如果仍看到 bash 提示符或报错,大概率是路径写错、漏了 -l 参数,或没关干净旧终端进程。


















