必须将terminal.integrated.cwd写入.vscode/settings.json,因其为工作区级配置,可被Git跟踪并随项目分发,确保跨平台团队成员(Windows/Linux)统一进入项目根目录;用户级设置仅限单机,无法协同。

VSCode 的终端默认路径不能靠“个人习惯”统一,必须用 terminal.integrated.cwd 显式配置,且值必须是跨平台安全的变量(如 ${workspaceFolder}),否则团队里 Windows 用户会看到路径解析失败、Linux 用户终端卡在 /home/xxx。
为什么 terminal.integrated.cwd 必须写进 .vscode/settings.json 而不是用户设置
用户级设置(settings.json 在 ~/.config/Code/User/ 或 %APPDATA%\Code\User\)对团队毫无意义——它只影响单台机器。真正起效的只有工作区级配置。
- 只有
.vscode/settings.json会被 Git 跟踪,才能随代码一起分发 - VSCode 加载顺序:用户设置 Workspace 设置 Folder 设置,不放对位置就等于没配
- 如果项目用了多根工作区(
.code-workspace),terminal.integrated.cwd应该写在settings字段下,而非每个子文件夹的.vscode
terminal.integrated.cwd 常见错误值和正确写法
硬编码绝对路径(如 "C:\dev\myapp" 或 "/Users/john/project")是最高频的翻车点,会导致其他成员打开终端直接报错或跳转到错误目录。
- ✅ 正确写法:
"terminal.integrated.cwd": "${workspaceFolder}"—— 所有平台都识别,指向当前工作区根目录 - ✅ 多模块项目:
"${workspaceFolder:Basename}"可提取当前工作区名,配合脚本使用更灵活 - ❌ 错误写法:
"./scripts"—— VSCode 不支持相对路径写法,会静默 fallback 到用户主目录 - ❌ 错误写法:
"${fileDirname}"—— 新建终端时没有活动文件,变量为空,终端启动失败
终端路径生效但行为异常?检查这三项
改完 settings.json 后终端还是没切到项目根?不是配置无效,而是被更高优先级机制覆盖了。
- 确认 VSCode 是以包含
.vscode的文件夹为「工作区」打开的,不是只打开了某个.ts文件 - 按
Ctrl+,搜索terminal.integrated.cwd,右侧显示图标必须是Workspace,若显示User说明被全局设置盖掉了 - Remote-SSH 连入后,
terminal.integrated.cwd读取的是远程机器上的${workspaceFolder},不是本地路径;此时若远程没 clone 到标准位置(比如 clone 到/tmp/myapp),路径仍会错
真正难的不是写那行 JSON,而是让所有人打开 VSCode 的方式一致、理解工作区与用户设置的边界、并在 Remote 场景下意识到路径解析发生在哪台机器上。











