
1. VSCode 插件默认安装路径为什么总把 C 盘吃满VSCode 插件默认安装路径指的是 Windows 下扩展包实际落盘的位置默认固定在C:\Users\{你的用户名}\.vscode\extensions。它决定了你每装一个插件、每更新一次插件文件都往 C 盘用户目录里塞。适合谁看C 盘是系统盘、容量只有 128G/256G又长期用 VSCode 写代码的开发者。能做什么把扩展目录整体迁到 D 盘C 盘只留一个目录联接junction当“门牌”插件照常加载路径对外看起来没变。我自己的主力机 C 盘是 256G 的固态系统、微信、浏览器缓存、各种 SDK 全堆在上面某天清理时发现.vscode\extensions已经涨到 9 个多 G。你可能觉得 9G 不算多但插件目录有个特点每装一个新版本旧版本目录不会立刻删干净像 Python、C/C、Remote 系列这种大插件一个版本几百兆攒几个月就很可观。更麻烦的是它藏在用户目录里平时根本想不起来。先说清楚原理后面操作才不会慌。VSCode 读取扩展的位置默认是用户目录下的.vscode\extensions。Windows 上有一个和 Linuxln -s对应的能力叫目录联接junction用mklink /D创建。它的效果是C:\Users\你\.vscode\extensions这个路径依然存在、依然能访问但它本身不存数据只是一个指向D:\VSCode\extensions的“快捷入口”。VSCode 按老路径去读实际读到的却是 D 盘的文件所以插件全部正常。这里有个关键点必须提前讲迁移前一定要先完全退出 VSCode。插件目录里有正在运行的扩展进程、日志、锁文件如果 VSCode 开着就剪切目录轻则部分文件占用剪切失败重则插件状态损坏。任务栏右下角、托盘区都检查一遍确保没有残留进程。还有一个容易踩的坑.vscode目录下不只有extensions还有argv.json、extensions.json等配置文件。我们只动extensions这一个子目录别把整个.vscode搬走否则可能影响 VSCode 的启动参数读取。迁移的目标目录建议放在非系统盘、路径不含中文和空格的盘符下比如D:\VSCode\extensions避免后续某些插件对路径解析出问题。如果你用的是便携版解压即用、不写注册表那种还要额外确认 VSCode 的可执行文件路径已经进了系统Path否则命令行里敲code会找不到。这一步和迁移扩展目录是两件事但经常一起做下面会分开讲。判断自己是不是需要迁移可以打开文件资源管理器地址栏粘贴%USERPROFILE%\.vscode\extensions回车右键属性看占用。超过 3G 且 C 盘剩余空间紧张就值得迁。低于 1G 的可以先不折腾等它长大再说。迁移本身可逆删掉联接就能回到默认状态风险可控。2. 迁移前用 TaoToken 把接入配置一次理清插件目录迁移是本地文件操作和模型服务没有直接关系但很多人的 C 盘之所以爆除了插件本身还有一堆 AI 编程插件Cline、Roo Code、Continue 之类在本地缓存对话、索引、模型返回。这些插件装完还要配 Base URL、API Key、Model ID配置写错就会反复重试、疯狂写日志间接把磁盘和网络都拖垮。所以趁迁移这个机会把模型接入配置也顺手理一遍用 TaoToken 统一管理后面换插件、换工具都不用重新找 Key。TaoToken 是一个面向开发者的模型接入平台官网在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 入口是 https://taotoken.net/api 。它能做什么给你一个兼容 OpenAI 风格的 Base URL 和 API Key让你在 VSCode 里的各种 AI 插件、命令行工具、Agent 框架里填同一套配置就能调用模型。适合谁需要在多个编辑器插件之间切换、又不想每个插件都单独申请和轮换 Key 的人。先说清楚三件套这是所有接入的通用公式缺一不可Base URLhttps://taotoken.net/api注意结尾不要多加/v1具体以插件要求为准有的插件要你填到/v1那就填https://taotoken.net/api/v1。API Key在控制台创建形如sk-开头的一串字符只显示一次创建后立刻复制保存。Model ID模型标识比如claude-sonnet-4-5、gpt-4o这类填错会直接报模型不存在。创建 Key 的入口在控制台的 API Keys 页面https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 。点进去新建一个 Key命名建议带上用途和日期比如vscode-cline-2025方便以后按工具吊销不要所有工具共用一个 Key一旦泄露全部遭殃。如果你用的是 Claude Code 这类命令行编码工具接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面有各客户端的配置示例。想先在网页里验证模型通不通可以直接用模型对话页https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 发一句话看有没有正常返回确认 Key 和模型 ID 没问题再去插件里填。长期做编码、跑 Agent 任务的可以看 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 按用量规划比零散调用更省心。Claude Code 的 Anthropic 兼容接入说明在 https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaude_codeutm_campaignrewrite 需要把 Base URL 指向对应端点。为什么迁移插件目录时要提这些因为迁移完成后你要重启 VSCode 验证插件是否正常加载AI 类插件如果配置错了会在启动时反复请求、写错误日志到扩展目录你刚迁到 D 盘的目录又会迅速膨胀。所以顺序建议是先确认模型接入配置正确再迁移目录最后重启验证。这样排查问题时变量更少。3. 可复制的环境变量与 mklink 目录联接配置这一节是核心操作全部命令都可以直接复制改掉用户名和盘符即可。分四步确认路径、退出 VSCode、剪切目录、创建联接。便携版用户额外加一步环境变量。3.1 确认当前扩展目录和目标目录先打开文件资源管理器地址栏输入下面这行回车确认默认扩展目录存在%USERPROFILE%\.vscode\extensions假设你的用户名是NueXini那完整路径就是C:\Users\NueXini\.vscode\extensions。目标目录我建议用D:\VSCode\extensions先在 D 盘手动建好D:\VSCode这个父目录extensions子目录剪切过去后会自动出现。3.2 完全退出 VSCode任务管理器里搜Code把所有 VSCode 进程结束。托盘区如果有图标也右键退出。这一步不做后面剪切会失败。3.3 剪切 extensions 目录到 D 盘在资源管理器里进入C:\Users\NueXini\.vscode\找到extensions文件夹右键剪切然后到D:\VSCode\下右键粘贴。粘贴完成后C:\Users\NueXini\.vscode\下应该已经没有extensions了D:\VSCode\extensions里是全部插件。3.4 用 mklink 创建目录联接回到C:\Users\NueXini\.vscode\目录在地址栏输入cmd回车这样打开的命令行工作目录就是当前目录。然后执行mklink /D C:\Users\NueXini\.vscode\extensions D:\VSCode\extensions参数说明/D表示创建目录联接不是文件符号链接第一个引号里是“门牌”路径必须是不存在的路径所以前面要先剪切走第二个引号里是真实数据目录。执行成功会提示为 C:\Users\NueXini\.vscode\extensions D:\VSCode\extensions 创建的联接。注意mklink是 cmd 内置命令必须在 cmd 里执行PowerShell 里直接敲会报找不到命令。如果你习惯用 PowerShell得写成cmd /c mklink /D ... ...或者干脆切到 cmd。另外创建目录联接通常不需要管理员权限但如果提示权限不足就用管理员身份打开 cmd 再执行。3.5 便携版补充把 VSCode 加进系统 Path如果你用的是解压即用的便携版且希望命令行能直接调code需要把 VSCode 的bin目录加进系统环境变量。假设 VSCode 解压在D:\VSCode那bin目录就是D:\VSCode\bin。操作Windows 搜索栏输入“环境变量”选择“编辑系统环境变量” → 点“环境变量”按钮 → 在“系统变量”区域找到Path→ 编辑 → 新建 → 填入D:\VSCode\bin→ 一路确定保存。保存后新开的命令行窗口才生效已经开着的窗口要重启。3.6 一份可直接套用的配置对照把下面表格里的值换成你自己的就是完整方案项目默认值迁移后扩展目录门牌C:\Users\NueXini\.vscode\extensions同左变成联接扩展真实目录无D:\VSCode\extensions创建命令无mklink /D 门牌 真实目录便携版 Path无D:\VSCode\bin如果你在 AI 插件里要填模型配置参考这份 JSON 片段以 Cline 类插件为例字段名以插件实际为准{ apiProvider: openai, openAiBaseUrl: https://taotoken.net/api, openAiApiKey: sk-你的Key, openAiModelId: claude-sonnet-4-5 }Codex 的auth.json结构类似把 Base URL、Key、Model ID 三件套填全缺一个都会在启动时报错。Cline MCP 场景下MCP server 配置和模型配置是分开的两块别混在一起写。4. 重启 VSCode 验证插件正常加载目录联接建好后不要急着删任何东西先验证。打开 VSCode观察三个地方。第一看扩展面板。左侧活动栏点扩展图标已安装列表应该和迁移前一模一样插件数量、名称、版本都不变。随便点开一个大插件比如 Python 或 C/C看详情页能不能正常显示没有转圈或报错。第二看插件是否真正生效。打开一个.py文件看底部状态栏有没有 Python 解释器选择器打开一个.ts文件看有没有类型提示。如果插件只是“显示在列表里”但功能不工作说明扩展目录读取有问题。第三回到文件资源管理器进入C:\Users\NueXini\.vscode\应该能看到extensions图标上带一个快捷方式小箭头右键属性显示“目标”指向D:\VSCode\extensions。点进去能直接看到 D 盘里的插件文件夹说明联接生效。再做一个写入验证在 VSCode 里随便装一个小插件比如某个主题装完后去D:\VSCode\extensions看有没有新增对应目录。如果有说明新插件也正确写到了 D 盘迁移彻底成功。这一步很关键很多人只验证了“旧插件能读”没验证“新插件能写”结果装新插件时又写回 C 盘。命令行验证也可以。打开 cmd执行dir C:\Users\NueXini\.vscode\extensions如果输出里能看到JUNCTION字样并且列出了 D 盘里的插件目录就确认无误。再执行dir D:\VSCode\extensions对比两边内容应该一致。验证通过后C 盘原来的extensions已经不存在了被剪切走了所以不存在“删 C 盘文件夹”的问题。如果你之前是复制而不是剪切那 C 盘会残留一份旧数据确认 D 盘一切正常后再删掉 C 盘那份但注意删之前确认联接已经建好否则 VSCode 会找不到扩展。重启 VSCode 后如果插件全部正常整个迁移就完成了。以后想再换盘比如从 D 盘换到 E 盘操作是退出 VSCode → 删除联接直接删C:\Users\NueXini\.vscode\extensions这个联接不会影响 D 盘数据→ 把D:\VSCode\extensions剪切到E:\VSCode\extensions→ 重新执行mklink /D指向新位置。删除联接时资源管理器可能会提示“确定要删除该文件夹吗”确认即可删的只是门牌。5. 迁移后常见报错排查401、local proxy failed、reading choices迁移本身很少直接导致模型报错但重启后 AI 插件如果配置有问题会集中暴露。下面按真实报错对照排查。报错一401 Unauthorized。这是 Key 问题。检查三处Key 是否复制完整有没有漏掉尾部字符、Key 是否已被吊销、Base URL 是否写错。Base URL 填https://taotoken.net/api如果插件要求带版本号就填https://taotoken.net/api/v1多一个斜杠或少一个/v1都可能 401。去控制台 https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 重新生成一个 Key 替换测试能通就说明是旧 Key 的问题。报错二local proxy failed / connection refused。这类报错通常和本地网络环境有关不是迁移造成的。先确认 Base URL 能通在浏览器打开模型对话页 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 发一条消息能正常返回说明服务侧没问题问题在插件配置或本地网络。检查插件里有没有误填本地代理地址比如127.0.0.1:xxxx把它清空直接用https://taotoken.net/api。报错三reading choices / cannot read property choices of undefined。这是模型返回结构不符合插件预期。常见原因Model ID 填错插件请求了一个不存在的模型返回体里没有choices字段。核对 Model ID 拼写去接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 查可用模型列表。另一个原因是 Base URL 少了/v1导致请求打到了非兼容端点。报错四OAuth 相关错误。如果你用的是 Claude Code 或 Codex 这类带 OAuth 流程的工具报 OAuth 失败通常是认证方式选错了。这类工具要选 API Key 模式而不是账号登录模式配置参考 https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaude_codeutm_campaignrewrite 。Codex 的auth.json里要写全 Base URL、Key、Model ID 三件套缺一个就会在 OAuth 校验阶段失败。报错五插件列表为空 / 扩展加载失败。这是迁移操作问题不是模型问题。检查mklink是否成功、联接目标是否指向正确的 D 盘目录、D 盘目录里是否有extensions.json和各个插件文件夹。如果联接建反了把真实目录建成了联接会导致数据混乱重新按第 3 节步骤来一遍。排查顺序建议先确认模型配置Key、Base URL、Model ID再确认目录联接最后确认插件本身版本。变量一个一个排除别同时改多个地方。6. 把配置固定下来后续换机直接复用迁移完成后建议把这次用到的命令和配置存成一个文本文件放在 D 盘D:\VSCode\下命名migrate-notes.txt。内容就三行默认扩展路径、目标扩展路径、mklink 命令。下次换电脑或者帮同事弄直接改用户名和盘符就能用。模型接入这边把 Base URL、Key、Model ID 三件套也记在同一份笔记里但 Key 不要明文长期保存用的时候去控制台重新生成。需要长期跑编码任务的Coding Plan 页面 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 有按用量的方案比每次临时申请更稳。最后提醒一个实用技巧迁移后如果发现某个插件行为异常先别怀疑迁移去扩展面板把它禁用再启用一次多数情况能恢复。真正因为目录联接导致插件损坏的概率很低联接对上层应用是透明的。C 盘腾出来的空间够你再装几十个插件了。