VSCode终端配置需手动提取settings.json中terminal.integrated.*字段,注意保留${env:PATH}、校验shell路径有效性,并彻底重启VSCode才能使环境变量生效;调试器环境独立于终端,需单独配置runtimeExecutable或依赖PATH。

VSCode 没有“导出终端配置”这个独立功能,所谓终端配置实际分散在 settings.json、keybindings.json 和系统级环境变量中;直接复制 terminal.integrated.* 相关字段就能复用,但漏掉 ${env:PATH} 或平台判断会导致新机器终端打不开。
terminal.integrated.* 配置必须手动提取到 settings.json
VSCode 终端行为由几十个 terminal.integrated.* 设置控制,但只有以下几项真正影响启动和环境:
-
terminal.integrated.defaultProfile.*:决定 Windows/macOS/Linux 各自默认用哪个 shell(如git-bash.exe或zsh),路径必须真实存在 -
terminal.integrated.env.*:按平台注入环境变量,比如把 Node 路径加进PATH,${env:PATH}必须保留,否则会丢掉npm、git等命令 -
terminal.integrated.fontSize、terminal.integrated.fontFamily:纯显示设置,不跨平台兼容,备份了也大概率要重调
操作建议:打开 Preferences: Open Settings (JSON),只复制含 terminal.integrated. 前缀的键值对,粘贴到新环境的 settings.json 中。别复制整个文件——里面混着主题、编辑器等无关项,容易覆盖掉别人已配好的内容。
Git Bash / Zsh / PowerShell 路径必须单独验证
终端能启动的前提是 shell 可执行文件路径正确。VSCode 不校验路径有效性,错配只会静默 fallback 到 cmd 或 bash,不报错也不提醒。
- Windows 下 Git Bash 路径不是固定值:
C:\Program Files\Git\git-bash.exe是默认,但用户可能装在D:\tools\Git\git-bash.exe;必须用快捷方式属性或where git-bash实际查 - macOS 上
zsh路径通常是/bin/zsh,但某些 M1/M2 机器用了 Homebrew 安装的/opt/homebrew/bin/zsh,得对应改terminal.integrated.defaultProfile.osx - PowerShell Core(
powershell)和 Windows PowerShell(pwsh)名称易混,VSCode 1.118 起推荐用pwsh,旧配置里写powershell会失败
验证方法:在新机器终端里执行 echo $SHELL(macOS/Linux)或 $PSVersionTable.PSVersion(PowerShell),再比对 settings.json 里写的路径是否匹配。
环境变量注入后必须彻底重启 VSCode
terminal.integrated.env.* 不支持热更新。改完 settings.json 后只重载窗口(Developer: Reload Window)无效,新变量不会生效。
- 必须完全退出 VSCode 进程:macOS 点左上角菜单 → Quit Visual Studio Code;Windows 任务栏右键 → Close all windows;Linux 用
killall code - 重新打开后,在内置终端运行
echo $PATH或node -v,确认输出是你预期的版本和路径 - 如果仍不生效,检查有没有插件(比如 Shell Launcher)覆盖了默认终端配置,临时禁用它再试
调试器和终端用的不是同一套环境
很多人发现终端里 node -v 正常,但调试器报 Cannot find runtime 'node'——因为调试器不读 terminal.integrated.env.*,它走自己的 launch.json 或全局 settings.json 里的 debug.node.autoAttach 和 runtimeExecutable。
- 调试器优先级:launch.json > 用户 settings.json > 系统 PATH
- 安全写法是删掉
runtimeExecutable字段,让调试器自动从 PATH 查找;若必须指定,用"runtimeExecutable": "node",而非硬编码路径 - Node 版本管理器(nvm/fnm)用户要注意:
nvm use只影响当前终端会话,VSCode 启动时并不执行它,所以必须把目标 Node 路径固化进terminal.integrated.env.*,再让调试器跟着走
真正要备份的只有三样:settings.json 里明确带 terminal.integrated. 的字段、真实 shell 路径、以及你本地 PATH 中关键工具(Node、Python、Java)的安装位置——这些没法自动推断,必须人眼确认一次。











