Project Manager 列表为空是因为未手动保存项目路径,它只读取 projects.json 中的绝对路径;需在含 package.json 等标识文件的根目录执行 Save Project,检查 JSON 格式、路径权限并 Reload Projects。

Project Manager 列表为空,根本切不了项目
不是插件坏了,是你还没告诉它哪些路径算“项目”。它不扫描磁盘,只读 projects.json 里存的绝对路径。
- 先确保当前打开的是项目根目录(含
package.json、.git、pyproject.toml等),再运行Project Manager: Save Project(快捷键Ctrl+Alt+S/Cmd+Alt+S) - 检查
projects.json路径是否可写:
Windows 在%APPDATA%CodeUserprojects.json,macOS 在~/Library/Application Support/Code/User/projects.json,Linux 在~/.config/Code/User/projects.json - 手动编辑后必须运行
Project Manager: Reload Projects,否则修改不生效 - JSON 格式错误(比如末尾多逗号、引号不闭合)会导致整个列表静默失效;用 VSCode 打开该文件,右下角切语言模式为
JSON with Comments再切回JSON,会高亮报错
切换后 .vscode/settings.json 和调试配置不生效
Project Manager 只跳转路径,不控制 VSCode 的设置加载逻辑——真正起作用的是「单文件夹模式」。
- 确认左上角菜单栏显示的是「文件 → 关闭文件夹」,而不是「文件 → 关闭工作区」;有「工作区」字样说明你当前是多根模式,
.vscode/settings.json被忽略 - 如果项目原本保存在
.code-workspace文件里,用 Project Manager 打开它,记下的仍是工作区路径,不是单文件夹路径;后续切换会维持多根行为 - 想让本地设置生效,要么确保项目是以独立文件夹方式保存的(即
Project Manager: Save Project时没在工作区里),要么把设置写进.code-workspace的"settings"字段里 - WSL 或 NAS 路径要填 VSCode 实际显示的格式,例如 Windows 上 WSL 必须写成
\wsl$\Ubuntu\home\user\my-app,不能写/home/user/my-app
Open in New Window 没反应,或新窗口被合并
VSCode 底层窗口策略会覆盖插件行为,尤其在 macOS 上容易误判为“没反应”。
- 先关掉 VSCode 设置里的
window.openFoldersInNewWindow(设为off或onClick),避免冲突 - 改用命令
Project Manager: Open Project in New Window (Force),它绕过 VSCode 默认判断逻辑 - macOS 用户注意:Dock 图标可能被系统合并;别只靠点击 Dock,用
Cmd + `切换窗口 - 全局设
projectManager.openInNewWindow为true后,所有项目默认新开窗;如需混用,可在单个项目对象里加"openInNewWindow": false字段,优先级更高
同名项目太多,点错了打开旧分支
Project Manager 允许重复名称,切换时按顺序列出所有匹配项,仅靠路径末尾区分——界面上只显示名字,不显示完整路径。
- 你看到两个
client,第一个可能是~/git/client,第二个才是~/git/client-feat/auth,但面板里都叫client - 编辑
projects.json,给每个项目加"name"字段,比如"name": "client-main"和"name": "client-auth",改完记得Reload Projects - 定期运行
Project Manager: Clean Projects,它会逐个检查rootPath是否可读,自动剔除因移动、重命名或挂载断连导致的失效条目 - 跨环境同步建议用符号链接统一路径,例如
ln -s /wsl$/Ubuntu/home/user/project ~/project,避免硬编码不同前缀
真正卡住的地方不在插件本身,而在 VSCode 对“工作区”的底层定义:它不支持标签页式切换,所有“切换”本质都是关闭再打开。路径是否合法、模式是否为单文件夹、JSON 是否语法正确——这三处任何一个出问题,都会导致看似“点了没反应”,其实只是 VSCode 拒绝加载。











