在 VS Code 里用 Claude Code:接中转站、给它上下文、逐处审改动,以及插件、MCP 和常见问题
按 Claude Code 官方的 VS Code 文档整理,接着《三种入口》往下讲:中转站的地址和 key 要写进 VS Code 自己的设置;怎么把选区、终端输出、图片交给它;改动怎么逐处接受或撤回;会话、插件、MCP 和内置的 IDE 服务器;常用设置和快捷键;出了问题从哪查。本站尚未实测。
本文根据公开分享整理,本站尚未实测。操作前请对照文末的原始来源。
本页目录(12 节)
这篇接着《在 VS Code、JetBrains 和桌面应用里用 Claude Code》往下讲。那一篇讲了扩展怎么装、怎么打开、和命令行差在哪;这一篇讲每天用的时候真正会碰到的事:
- 走中转站,地址和 key 写在哪才管用;
- 怎么把选区、终端输出、图片交给它;
- 它改了代码,怎么一处一处地接受或撤回;
- 几个对话、插件、MCP 怎么管;
- 哪些设置和快捷键值得改,出了问题从哪查。
全文按 2026-10-21 的官方文档整理。本站的测试环境是没有图形界面的服务器,VS Code 扩展没有实测,按钮和菜单的名字照文档写。
先看版本。 扩展的版本号就是它里面那份 Claude Code 的版本号,在扩展视图里看得到。下文标着“2.1.xxx 起”的功能,扩展版本不到就没有。扩展的 ID 是 anthropic.claude-code。
一、走中转站:地址和 key 写进 VS Code 的设置
这是国内读者最先卡住的地方。官方的网关文档说得很明确:
- 扩展在启动前会先自己检查一遍凭据,它看的是 VS Code 用户设置里的
claudeCode.environmentVariables; - 写在
~/.claude/settings.json里的值能传到它启动的进程里,但过不了扩展自己的这道登录检查。
所以用命令面板运行 Preferences: Open User Settings (JSON),加上:
{
"claudeCode.environmentVariables": [
{ "name": "ANTHROPIC_BASE_URL", "value": "https://你的中转站地址" },
{ "name": "ANTHROPIC_AUTH_TOKEN", "value": "你的key" }
]
}
中转站要 x-api-key 的,把第二行的名字换成 ANTHROPIC_API_KEY。地址不带 /v1。更完整的说明见《Claude Code 接入中转站》。
几件相关的事:
- 在终端里能用、在扩展里不行,多半是 VS Code 没继承你 shell 里的环境变量。官方的两个办法:把变量写进上面这个设置;或者在已经设好变量的终端里用
code .启动 VS Code。 - 还弹登录界面。 VS Code 文档在“用第三方服务”一节里让 Bedrock 这类用户勾上 Disable Login Prompt(
claudeCode.disableLoginPrompt),用来跳过登录提示。网关文档讲 VS Code 时没有提这一步。走中转站的,设好变量后如果还反复要求登录,可以试试勾上它。这一条是本站对照两页文档给的建议,没有实测。 - 确认用的是哪份凭据:在输入框里输入
/status(2.1.280 起),看账号、模型和 MCP 的信息。启动时报两份凭据冲突的,按网关文档的说法删掉其中一份。 - 哪些功能没有。 文档说,用第三方服务(文档举的是 Bedrock、Google Cloud、Foundry)时,依赖 claude.ai 账号的功能不出现:套餐用量的进度条、语音输入、云端会话的 Web 标签页。Claude in Chrome(
/chrome)也要 claude.ai 账号。此时/usage显示的是这个会话自己的花费和 token 数,不是套餐额度;问题报告不发给 Anthropic,只存在本机的~/.claude/feedback-bundles/。文档没有说经ANTHROPIC_BASE_URL接的网关算不算这里的“第三方服务”,按道理没有 claude.ai 账号的这些功能都用不了。
二、给它上下文
| 想给它的 | 怎么做 |
|---|---|
| 编辑器里选中的代码 | 选中就行,它自动看得到,输入框底部会显示选了几行。按 Option+K(Mac)或 Alt+K(Windows、Linux)插入一个带行号的引用,比如 @app.ts#5-10 |
| 正在看的文件 | 默认也会带上,输入框里显示文件名。只想带选区,关掉 claudeCode.attachOpenFile(2.1.271 起) |
| 某个文件或文件夹 | @ 加名字,模糊匹配:@auth 能匹配到 auth.js、AuthService.ts;文件夹要带结尾的斜杠,比如 @src/components/ |
| 终端里的输出 | @terminal:终端的标题,报错和日志不用再复制粘贴 |
| 图片 | 从剪贴板直接粘进输入框。截图怎么交、它看得有多细,见《让 Claude Code 看图》 |
| 别的文件 | 按住 Shift 拖进输入框 |
| 很长的 PDF | 可以让它只读第几页;要在运行 Claude Code 的机器上装 poppler-utils |
两个保护措施要知道:
- 敏感文件的选区不会发出去,但只在对话面板里。 文件被
files.exclude或search.exclude排除,或者被.gitignore忽略(search.useIgnoreFiles和扩展的respectGitIgnore都开着,默认如此),在这种文件里选中的文字,Claude 最多只拿到文件路径。文档特别说明,在内置终端里跑的命令行不做这个过滤,选中什么就发什么。.env这类文件要真挡住,在设置里加一条Read拒绝规则。 - 看不见的字符会被去掉。 粘贴时提示“去掉了几个不可见字符”,说明已经清理好放进来了;发送时出现这个提示,说明这次什么也没发出去,清理过的文本退回输入框,再发一次才按你看到的内容发送。
三、审改动:可以一处一处地来
先看输入框底部的权限模式。2.1.283 起默认是 Auto(之前的版本只在 Pro、Max、Team 套餐上默认 Auto),大多数操作由分类器判断,不一个个问你。想每次改文件都先看一眼,切到 Manual。各模式的区别见《权限模式怎么选》。
Manual 模式下,它要改文件时先把原文和改动左右对照摆出来:
- 可以直接在 diff 里改。 你改了它提议的内容再接受,它会被告知你动过,不会以为文件还是它原来写的样子。
- 逐处接受或撤回(2.1.275 起)。 每一处改动下面有 Accept this change 和 Reject this change。也可以把光标放在那一处,用右键菜单或命令面板的 Claude Code: Accept Change at Cursor、Reject Change at Cursor。改动超过 100 处的 diff 没有逐处的按钮,只能整个文件接受或拒绝。
- 先出计划。 Plan 模式下,计划会作为一份完整的 Markdown 文档在编辑器里打开,可以加行内批注再让它开始。2.1.280 起可以用
/plan进入,/plan 修一下登录的 bug是进入并直接开始规划,/plan open在编辑器里打开计划文件。 - 改坏了退回去。 鼠标悬在任何一条消息上,有三个回退选项:从这里分出一个新对话、把代码退回到这里、两样都做。用命令改的文件退不回来。
四、输入框里值得知道的几样
- 模型和 effort。 点输入框底部的模型名,或者输入
/model(2.1.284 起)。支持 effort 的模型多一行 Effort:选max只对这个会话有效,选别的档位会存成这个模型的默认值。开了动态工作流的,下面还有 Ultracode 开关。 - Customize 一栏(点
/打开命令菜单):查看和增删 hooks、权限规则(2.1.269 起),开关自动记忆、浏览和修改记忆(2.1.274 起),编辑 CLAUDE.md(Instructions),看沙箱状态(/sandbox),导出对话(/export)。 - 旁支问题:
/btw 你的问题(2.1.227 起),答案在旁边的面板里,不进对话历史。 - 复制和书签:
/copy复制最新一条回复,/copy 2复制倒数第二条(2.1.277 起);书签用/bookmarks打开(2.1.286 起)。 - 上下文和缓存。 输入框旁边显示上下文用了多少,可以手动
/compact。旁边还有一个缓存时钟,估算提示缓存还剩几分钟过期;数字消失、图标变红,说明缓存大概率已经过期,下一条会更慢、更贵。按量计费的,停下来想事情之前看一眼。 - 子代理和后台任务。 有子代理时输入框底部显示 “2 agents” 这样的计数,点开是一棵树,能看每个的状态、耗时、token,也能停掉(2.1.269 起)。后台命令和子代理也在这里,用
/tasks打开。命令或子代理让它等太久时,点工具调用下面的 Run in background(2.1.287 起),它就不等了。2.1.286 起按 Stop 或Esc只结束当前这一轮,后台的代理还会继续跑,要在这张图里停。子代理的进阶用法见《子代理进阶》。 - 思考过程:在
/菜单里打开扩展思考,Ctrl+O展开或收起这个会话里所有的思考块。 - 换行:
Shift+Enter。
五、几个对话、会话和窗口重载
- 同时开几个对话:命令面板 Open in New Tab(
Cmd+Shift+Esc/Ctrl+Shift+Esc)或 Open in New Window,各自独立。标签页上的星芒图标出现蓝点,是有权限请求在等你;橙点,是你没看的那个标签里它已经做完了。 - 面板放哪:把面板拖到右侧栏、左侧栏或编辑区。主会话放侧栏、支线任务开新标签,是文档推荐的用法。
- 分组和筛选(2.1.229、2.1.271 起):在活动栏的会话列表里右键建组、移入移出;顶部可以只看需要你输入的、正在跑的或没读的。
- 归档:默认 14 天没动静的会话自动归档(开着的、没读的、在组里的除外),在扩展设置
archiveInactiveSessions里改天数或关掉(第七节)。2.1.257 以前这个操作叫 Delete session,删了找不回来;升级后那些会话会出现在 Archived sessions 下。 - 重载窗口之后:在编辑区标签里的对话会跟着回来;在侧栏里的,只有最近 10 分钟有过消息的才回来,别的从会话历史里恢复。重载打断了它正在做的一步,回来后会接着做(2.1.274 起,
claudeCode.continueAfterReload可以关)。一个对话连续两次没打开完,面板就不再自动打开它,并提示它 “was not reopened”,避免面板一直卡死。 - 同一个对话不要两处开。 它还在终端里或另一个窗口开着时,输入框位置会提示,说两处同时用会把消息弄混;先关掉另一边,再点 Open here anyway。
六、插件和 MCP
插件:输入 /plugins 打开 Manage plugins。
- Plugins 标签里装、开关、卸载。装的时候选范围:只给自己(所有项目)、给这个项目(和协作者共享)、只在本机的这个仓库。
- 项目共享的设置里启用的插件,关掉或卸载时会问你是只对自己关,还是改共享的设置(对所有人生效)。
- Marketplaces 标签里加市场:GitHub 仓库、网址或本地路径。移除一个市场,会卸载从它装的所有插件,确认框里先列出来。
- 可以发一个安装链接给同事,形如
vscode://anthropic.claude-code/install-plugin?plugin=插件名&marketplace=owner/repo,对方点开会停在选范围那一步,不会直接装。 - 扩展管插件用的是和命令行同样的命令,两边装的通用。插件怎么写,见《做一个 Claude Code 插件》。
MCP:在对话里输入 /mcp,可以加、删、开关、重连服务器,管理 OAuth 认证(在对话框里加删要 2.1.261 起)。也可以在内置终端里用 claude mcp add,两边存的是同一份配置,改了以后新开的对话才生效。注意 claude mcp add 保存时不检查凭据,填错了也收;开个新对话、/mcp 里显示 Connected 才算接上,显示 Failed 就是凭据或地址不对。用法见《Claude Code 接 MCP 服务器实战》。
内置的 IDE 服务器。 扩展一启动就在本机跑一个叫 ide 的 MCP 服务器,内置终端里的命令行会自动连上它,用 VS Code 的 diff 视图显示改动、读你的选区。几个细节:
- 只监听
127.0.0.1,端口在 10000 到 65535 之间随机,不能配置;每次扩展启动生成一个新的令牌,写在~/.claude/ide/<端口>.lock里,只有你自己能读。 - 给模型用的只有两个工具:
mcp__ide__getDiagnostics(读 Problems 面板里的错误和警告,只读)和mcp__ide__executeCode(在当前的 Jupyter 笔记本里跑 Python)。 - 跑笔记本代码每次都要你点头:它把代码作为新单元格插到笔记本末尾,再弹出 VS Code 自己的选择框问 Execute 还是 Cancel。权限规则里放行了这个工具,也只是允许它“提出”运行,真正运行要你在这个框里点。
- 对话面板里读诊断用的是另一个内置服务器,工具名是
mcp__claude-vscode__getDiagnostics(2.1.285 起)。不想让它读,两个名字都要写进permissions.deny,Read拒绝规则管不到它们。
七、值得改的设置
扩展有两处设置:VS Code 里的扩展设置(Cmd+, / Ctrl+,,进 Extensions > Claude Code),管扩展在编辑器里的行为;~/.claude/settings.json,和命令行共用,放允许的命令、环境变量、hooks、MCP。在后者里加一行 "$schema": "https://json.schemastore.org/claude-code-settings.json",VS Code 会给所有设置补全和校验。
扩展设置里常用的(完整键名前面都带 claudeCode.):
| 设置 | 默认 | 作用 |
|---|---|---|
environmentVariables |
[] |
给 Claude 进程设环境变量,接中转站就写在这里(第一节) |
disableLoginPrompt |
false |
跳过登录提示,文档说给第三方服务用 |
initialPermissionMode |
不设 | 新对话的起始模式:default、plan、acceptEdits、bypassPermissions。只读用户设置,忽略工作区设置(2.1.225 起) |
preferredLocation |
panel |
在哪打开:sidebar(右侧栏)或 panel(新标签页) |
useCtrlEnterToSend |
false |
改成 Ctrl/Cmd+Enter 发送,Enter 换行 |
autosave |
true |
它读写文件前先自动保存 |
attachOpenFile |
true |
自动带上正在看的文件 |
respectGitIgnore |
true |
搜索和选区排除 .gitignore 里的文件 |
allowDangerouslySkipPermissions |
false |
在模式里加上 Bypass permissions。文档说只在不联网的沙箱里用 |
useTerminal |
false |
不用图形面板,改成命令行那样的界面 |
archiveInactiveSessions |
14 |
多少天没动静就归档,0 是不归档 |
claudeProcessWrapper |
不设 | 用另装的 claude 来跑。扩展没有带你这个平台的二进制时用 |
八、快捷键
| 做什么 | Mac | Windows、Linux |
|---|---|---|
| 在编辑器和 Claude 输入框之间切换 | Cmd+Esc |
Ctrl+Esc |
| 在新标签页开一个对话 | Cmd+Shift+Esc |
Ctrl+Shift+Esc |
| 插入当前文件和选区的引用 | Option+K |
Alt+K |
| 重新打开刚关掉的 Claude 标签 | Cmd+Shift+T |
Ctrl+Shift+T |
| 只看提问和回答,收起工具调用(Focus view) | Ctrl+Option+F |
Ctrl+Alt+F |
新对话(要先打开 enableNewConversationShortcut) |
Cmd+N |
Ctrl+N |
| 打开内置终端跑命令行 | Cmd+` |
Ctrl+` |
macOS Tahoe 起,Cmd+Esc 默认被系统的游戏浮层占了:到系统设置的 Keyboard → Keyboard Shortcuts → Game Controllers 里取消 Game Overlay,或者在 VS Code 的快捷键设置(Cmd+K Cmd+S)里给 Claude Code: Focus input 换个键。
九、和命令行一起用
-
要用扩展里没有的东西(
!开头直接跑命令、Tab 补全、全部的命令和 skill),在内置终端里运行claude。装了扩展不等于终端里有claude,要另外安装命令行。 -
内置终端里的命令行会自动连上 VS Code,用它的 diff 视图、读选区和诊断;外部终端里输入
/ide连上。 -
两边的对话历史是通的,终端里
claude --resume能找到扩展里的对话。 -
卸掉扩展又自己装回来了? 在内置终端里运行
claude会自动重装扩展。要保持卸载,在/config里关掉 Auto-install IDE extension,或者把autoInstallIdeExtension设成false,或者设这个环境变量:export CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL=1连扩展的数据和设置一起清掉,删掉它的存储目录:
# macOS rm -rf ~/Library/"Application Support"/Code/User/globalStorage/anthropic.claude-code # Linux rm -rf ~/.config/Code/User/globalStorage/anthropic.claude-code
十、出了问题先查
| 现象 | 先做什么 |
|---|---|
| 装不上扩展 | VS Code 要 1.94.0 以上;看 VS Code 有没有装扩展的权限;从 VS Code 的扩展市场网页直接装 |
| 看不到星芒图标 | 先打开一个文件;Developer: Reload Window;暂时停掉别的 AI 扩展;工作区处在受限模式时扩展不工作。点右下角状态栏的 ✻ Claude Code 也能打开 |
| 终端里能用,扩展里要求登录或报认证错 | 凭据写进 claudeCode.environmentVariables,或从终端 code . 启动(第一节) |
SSL certificate verification failed、Self-signed certificate detected |
公司代理或自签证书的问题,见《网络和数据》 |
| 恢复的对话一开始是空白的 | 正常,进程在启动,一秒左右出现 Waiting for your plugins…,最长等 20 秒左右 |
每次重载、对话回来时面板卡死或只显示 Something went wrong |
把扩展升到 2.1.301 以上 |
| 公式显示成原始的 LaTeX | 渲染公式要 2.1.301 起,命令行界面模式(useTerminal)下不渲染 |
| 发了消息一直没回应 | 看网络;开个新对话试试;在终端里跑 claude 看更详细的报错,见《常见报错怎么查》 |
| 想看扩展自己的日志 | 命令面板 Claude Code: Show Logs |
这篇没有覆盖到的
- 全篇没有实测。 按钮、菜单名和版本要求照 2026-10-21 的官方文档写,扩展更新很快,以你看到的为准。
- 走中转站时哪些功能能用,官方只对 Bedrock 这类第三方服务做了说明,网关算不算在内没有写;
disableLoginPrompt要不要勾,是本站的建议。 - **读屏、LaTeX 的细节、从别的工具用
vscode://anthropic.claude-code/open打开标签、继续 claude.ai 上的云端会话、在浏览器里自动操作(@browser)**只提了名字或没有展开,要 claude.ai 账号的功能走中转站用不了。 - 开发容器、远程 SSH 下的 VS Code、Cursor 等分支编辑器的差别没有展开。