macOS 上配置 VS Code 集成终端与 zsh
本文目录
这篇文章保留旧地址 tool/vscode/3,但已重写为当前配置。早期教程中的 terminal.integrated.shell.osx 已不是当前推荐入口;把 GitHub 地址固定解析到某个 IP 的 hosts 修改也不应作为网络故障解决方案。请不要照旧截图或命令覆盖本机配置。
本文适用于 macOS 自带 zsh 或已安装的 zsh。先确认 VS Code 版本、shell 路径和现有配置,再逐项调整;不需要为了美化终端更换系统默认 shell。
1. 确认当前 shell
在 macOS Terminal 中运行只读检查:
echo "$SHELL"
zsh --version
command -v zsh
$SHELL 表示用户的登录 shell,不保证每个 VS Code 窗口都会使用同一个启动模式。VS Code 通常会自动发现 macOS 的标准 shell;先在终端菜单运行 Terminal: Select Default Profile,选择 zsh 并新建终端。只有自动发现失败或需要自定义启动参数时才手动添加 Profile。
2. 可选:显式配置 zsh Profile
在 VS Code 命令面板执行 Preferences: Open User Settings (JSON)。多数用户无需额外配置;需要固定 Profile 时,使用当前的 profiles 与 defaultProfile 设置,而不是旧的 terminal.integrated.shell.osx:
{
"terminal.integrated.profiles.osx": {
"zsh (login)": {
"path": "/bin/zsh",
"args": ["-l"]
}
},
"terminal.integrated.defaultProfile.osx": "zsh (login)"
}
如果 command -v zsh 返回不同路径,把 path 换成实际存在的路径,或删掉自定义项继续使用自动发现。不要盲目添加登录参数:登录与交互 shell 会读取不同配置文件,重复初始化 nvm、Homebrew 或 PATH 会让启动变慢、路径重复。任务和调试也可以单独配置 terminal.integrated.automationProfile.osx,避免继承复杂的交互式主题初始化。
3. 理解 zsh 启动文件
zsh 的读取顺序取决于 shell 是否为登录、交互模式。日常配置可按下面边界整理:
~/.zshenv:几乎每次启动 zsh 都会读取,包括脚本;保持极短,不要放网络请求、插件框架、终端输出或慢初始化。~/.zprofile:登录 shell 的环境初始化。macOS 的 Homebrew 环境或登录级设置可放这里,但不要和.zshrc重复拼接 PATH。~/.zshrc:交互式终端的补全、提示符、别名和交互插件;Oh My Zsh、主题与语法高亮通常放在这里。~/.zlogin:登录 shell 在.zshrc之后读取;除非明确需要这个时机,否则尽量留空。
若使用 Oh My Zsh,按它当前官方安装说明操作;安装脚本会修改 shell 配置,执行前先审阅目标文件并备份。不要把未经检查的远程脚本通过 curl | sh 直接执行,也不要为绕过 DNS/TLS 问题而写入固定 IP。网络问题应检查 DNS、代理、证书链和当前网络策略。
4. 字体、主题与插件
主题中的 Powerline 图标缺字时,安装并选择兼容的 Nerd Font(例如 MesloLGS NF),然后分别在 macOS Terminal 与 VS Code 的 terminal.integrated.fontFamily 中选择字体。字体仅影响显示,不会安装 zsh 插件,也不会改变 shell 行为。
先用默认 zsh 验证终端和项目命令正常,再一次只启用一个主题或插件。常见选择包括 autosuggestions、syntax-highlighting;先核对插件仓库、维护状态和安装脚本。插件拥有当前用户 shell 权限,能读取该用户可访问的文件。不要为装插件关闭系统安全检查,也不要把工作机的私有插件或凭据同步到公开 dotfiles。
5. 迁移和验收
先备份设置文件,再记录现状:
cp ~/.zshrc ~/.zshrc.before-vscode-terminal
code --list-extensions
如果 code 命令不可用,可在 VS Code 命令面板运行 Shell Command: Install code command in PATH,再新开终端验证。迁移扩展优先使用 VS Code Profiles 导出/导入或经过审查的扩展 ID 清单,不要直接复制整个扩展目录;Settings Sync 也应先选择要同步的配置类别。
完成后依次验证:
- VS Code 新终端能启动,提示符和字体正常;
echo "$0"、echo "$SHELL"、command -v node和node --version的结果符合预期;- 新开登录终端和 VS Code 终端没有重复 PATH、重复 nvm 初始化或明显启动延迟;
- shell 脚本、项目任务和调试配置在没有交互式别名的情况下仍能运行;
- 如果终端异常,先用 Terminal: Select Default Profile 切回自动发现的默认项,或恢复备份的 settings.json 与
.zshrc。
参考资料
- VS Code 官方:Terminal Profiles:Profile、平台设置键和自动发现。
- VS Code 官方:命令行:安装
code命令及 CLI 用法。 - zsh 官方:启动与关闭文件:登录与交互 shell 的文件读取顺序。
- Oh My Zsh 官方站点:安装和配置入口;安装前检查脚本修改。
Live Notes
留言提交后会先进入审核,审核通过后对其他读者公开。