插件默认安装路径为用户主目录下的 .vscode/extensions:Windows 是 C:\Users\{用户名}\.vscode\extensions,macOS 和 Linux 是 ~/\.vscode/extensions;可通过 --extensions-dir 启动参数指定新路径,如 code --extensions-dir "D:\vscode-ext",或使用符号链接实现免参数切换。

插件默认安装路径在哪?直接看系统对应位置
VSCode 不提供图形界面设置来改插件安装目录,所有插件默认都落在用户主目录下的 .vscode/extensions 里。这个路径不是凭空生成的,而是由操作系统和 VSCode 启动逻辑共同决定的:
- Windows:
C:\Users\{用户名}\.vscode\extensions(等价于%USERPROFILE%\.vscode\extensions) - macOS:
/Users/{用户名}/.vscode/extensions(等价于~/.vscode/extensions) - Linux:
/home/{用户名}/.vscode/extensions(等价于~/.vscode/extensions)
注意:{用户名} 是你当前登录系统的账户名,不是 Administrator 或 root 这类特殊账户名。路径里带点开头的 .vscode 是隐藏目录,Windows 资源管理器默认不显示,需开启“显示隐藏的文件和文件夹”才能看到。
怎么把插件挪到 D 盘或其它位置?只靠 --extensions-dir
VSCode 唯一支持的官方方式是启动时加参数指定新路径。它不会自动迁移旧插件,也不会在 UI 里同步更新“已安装插件”列表——你得自己搬、自己验证。
- 先手动把
.vscode/extensions整个文件夹剪切到目标位置,比如D:\vscode-ext - 然后用命令行启动:
code --extensions-dir "D:\vscode-ext"(引号不能少,路径含空格也必须包住) - 打开后去 Extensions 视图(
Ctrl+Shift+X),如果看到原来装过的插件还在,说明成功了 - 后续每次启动都要加这个参数,否则会回落到默认路径,新装插件又跑回 C 盘
常见坑:code --extensions-dir D:\vscode-ext(没引号)在 Windows 下遇到带空格路径会失败;macOS/Linux 路径里有空格也一样。另外,快捷方式目标栏末尾加参数时,前面必须留一个英文空格,比如:"C:\Users\me\AppData\Local\Programs\Microsoft VS Code\Code.exe" --extensions-dir "D:\vscode-ext"。
为什么改了路径,中文插件还是英文界面?
这不是插件没加载,而是 VSCode 启动顺序问题:语言包属于“需要重启生效”的类型,但 VSCode 默认不会因扩展目录变更而强制重载全部插件。
- 第一次用
--extensions-dir启动时,VSCode 可能只加载了部分插件,语言包还没激活 - 关掉所有 VSCode 窗口,再执行一遍完全相同的命令(
code --extensions-dir "D:\vscode-ext"),界面通常就变中文了 - 更稳妥的做法:启动后按
Ctrl+Shift+P→ 输入Developer: Reload Window强制刷新 - 如果仍无效,检查插件是否真的在新路径下——进
D:\vscode-ext看有没有类似ms-ceintl.vscode-language-pack-zh-hans这样的文件夹
想让所有项目都用同一套插件,但又不想改全局路径?
VSCode 没有“每个工作区独立插件池”的机制,--extensions-dir 是进程级参数,影响整个 VSCode 实例。但你可以用符号链接(symlink)绕过限制:
- Windows(管理员权限运行 PowerShell):
New-Item -ItemType SymbolicLink -Path "$env:USERPROFILE\.vscode\extensions" -Target "D:\vscode-ext" -Force - macOS/Linux:
ln -sf /path/to/your/ext/folder ~/.vscode/extensions - 这样 VSCode 仍读默认路径,实际访问的是你指定的位置,且无需每次加参数
- 注意:符号链接在某些网络盘或 OneDrive 同步目录里可能失效,优先选本地 NTFS/HFS+/ext4 分区
真正容易被忽略的点:改路径后,Extensions 视图里的“禁用”“更新”操作依然作用于新路径下的插件,但卸载操作会删掉那个目录里的整个文件夹——别误删别人共享的插件目录。


















