vscode插件路径只能通过启动参数--extensions-dir指定,不可在图形界面或设置中修改;工作区设置优先级高于用户设置,且仅.vscode/settings.json和.code-workspace生效。

VSCode插件路径不能靠设置改,必须用--extensions-dir
VSCode 根本没提供图形界面选项来修改插件安装位置。你在设置里搜“extensions directory”或“插件路径”,什么都找不到——这不是隐藏了,是压根没实现。
唯一可靠的方式是启动时传参:--extensions-dir。它告诉 VSCode:“所有插件读写都去这个目录,别碰默认的 .vscode/extensions”。
- 路径末尾不能带斜杠:
"D:\vscode-ext"✅,"D:\vscode-ext\"❌ -
--extensions-dir和路径之间必须有空格,且路径要用英文双引号包裹(Windows/macOS/Linux 都要) - 首次用该参数启动后,新装插件自动进目标目录;旧插件只要提前挪过去,也会被识别
- 别只改命令行——桌面快捷方式、右键菜单、开始菜单项都得同步加参数,否则点图标就走默认路径
工作区设置优先级高于用户设置,但只对.vscode/settings.json或.code-workspace生效
你改了全局 settings.json(在用户目录下),又在项目里建了 .vscode/settings.json,那编辑器一定用后者。这是硬编码的优先级规则,不是可配置项。
但注意:只有这两个位置的文件才参与覆盖逻辑。比如你把 settings.json 放在 src/ 子目录里,它完全不会被读取。
-
.vscode/settings.json:单文件夹项目专用,只影响当前文件夹及其子目录 -
.code-workspace:多根工作区专用,"settings"字段里的配置作用于整个工作区 - 两者都不影响其他未打开的项目,也不会污染用户级设置
插件推荐列表extensions.json只起提示作用,不自动安装
.vscode/extensions.json 文件里的 "recommendations" 列表,只是给打开该工作区的人弹个提示:“建议安装这些插件”。它不会静默下载,也不强制启用,更不会阻止你删掉其中某个插件。
团队想真正统一环境,得配合文档或脚本说明:“请手动安装 esbenp.prettier-vscode 和 ms-python.python”,或者用 CI 检查开发机是否已安装。
- 该文件内容示例:
{"recommendations":["esbenp.prettier-vscode","ms-python.python"]} - 它不控制插件行为,也不影响插件路径——插件仍按
--extensions-dir或默认位置加载 - 如果插件已禁用,推荐列表不会自动启用它
多根工作区里,每个子文件夹可有自己的.vscode/settings.json
一个 .code-workspace 可以包含 ./client 和 ./server 两个文件夹,而它们各自能拥有独立的 .vscode/settings.json。VSCode 会合并应用:工作区级设置 + 各子文件夹级设置。
比如你想让前端用 Prettier、后端用 ESLint,就不能只靠工作区统一配置,得在 ./client/.vscode/settings.json 里写 "editor.defaultFormatter": "esbenp.prettier-vscode",再在 ./server/.vscode/settings.json 里写 "editor.defaultFormatter": "dbaeumer.vscode-eslint"。
- 语言特定设置(如
"[typescript]": {...})也支持这种嵌套作用域 - 路径相关的配置(如
files.exclude)会按当前打开的文件所在子文件夹生效,不是全局广播 - 别指望
.code-workspace里的"settings"覆盖所有子文件夹的 formatter——它只能设兜底值,具体还得看各子目录自己的settings.json
Developer: Show Extensions Folder 确认真实路径,再打开项目检查 .vscode 下到底有没有你认为该存在的文件。











