最稳方式是设置环境变量vscode_extensions——windows设系统变量,macos/linux加export到shell配置文件,重启vs code后新插件自动装入指定路径,旧插件需手动复制且不可剪切。

VS Code 插件默认全塞在 C 盘用户目录下,不改路径,几十个插件轻松吃掉 5–10 GB 空间。直接改 --extensions-dir 或环境变量 VSCODE_EXTENSIONS 就能彻底移出 C 盘,无需重装、不丢配置。
怎么让新插件自动装到 D 盘(或任意非系统盘)
最稳的方式是用环境变量 VSCODE_EXTENSIONS ——设一次,永久生效,所有启动方式(快捷方式、命令行、右键菜单)都认这个路径。
- Windows:新建系统环境变量,
变量名填VSCODE_EXTENSIONS,变量值填你想要的路径,比如D:\vscode-ext(别用 VS Code 安装目录下的子文件夹,会冲突) - macOS/Linux:在
~/.zshrc或~/.bashrc里加一行export VSCODE_EXTENSIONS="/path/to/your/ext",然后运行source ~/.zshrc - 设置完必须重启 VS Code(不是重载窗口,是彻底关掉再打开),否则旧插件仍从原路径加载
- 迁移旧插件:把原
%USERPROFILE%\.vscode\extensions下所有文件夹复制过去,别剪切——万一路径没生效还能回退
为什么 code --extensions-dir 启动后插件还是装回 C 盘
这个参数只对「当前这次启动」生效。如果你平时靠双击快捷方式或开始菜单打开 VS Code,那它根本没读这个参数,自然还走默认路径。
- 常见误操作:只在 CMD 里执行了一次
code --extensions-dir "D:\ext",以为“设好了”,结果下次点桌面图标又回到 C 盘 - 快捷方式也能加参数,但容易漏:右键属性 → “目标”末尾加一个空格,再加
--extensions-dir "D:\ext"(注意空格和英文引号) - Mac 用户注意:
code命令默认调用的是 shell wrapper,如果用 Launchpad 或 Dock 打开,--extensions-dir无效,必须用环境变量
插件移走了,中文界面却变回英文?
不是插件没加载,是语言包加载顺序问题。VS Code 启动时先读 UI 语言,再加载扩展;如果中文包(如 ms-ceintl.vscode-language-pack-zh-hans)还没就绪,UI 就按系统语言 fallback 了。
- 解决方法很简单:关掉 VS Code,再开一次(第二次启动时插件已注册完成,语言包能正常介入)
- 如果反复失败,检查
VSCODE_EXTENSIONS路径下是否真有中文包文件夹(名字含zh-hans或ceintl),没有就手动复制一份过去 - 别碰
locale.json里硬写"locale": "zh-cn"——这只能临时覆盖,不解决根本加载时机问题
便携模式(Portable Mode)适合什么人用
只推荐给需要「完全隔离环境」的人:比如在公司电脑上不想污染个人配置,或要带 VS Code 到不同机器上用同一套插件+设置。
- 启用条件很死:必须用官方 .zip / .tar.gz 包(不能是 Windows Installer),且根目录下要有
data文件夹 - 插件自动落在
data/extensions,但更新会被禁用 ——code --update不起作用,得手动下载新版 .zip - 别指望它解决空间问题:data 目录仍在你解压的位置,如果解压到 C 盘,照样占 C 盘
真正容易被忽略的一点:插件路径改完后,Developer: Show Extensions Folder 命令显示的路径必须和你设的一致,否则说明某处配置没生效。多查一次比反复重装省半小时。











