VSCode的PR批注功能完全依赖GitHub Pull Requests and Issues插件,未安装则无右键菜单;装了需在PR差异视图中操作、光标停在变更行、手动点击Submit或按Ctrl+Enter提交,否则草稿仅暂存于.comment-cache.json并随会话清空;SSH克隆仓库因插件正则不匹配需改HTTPS或手动配置repository;多模态批注为实验性功能,须启用workbench.experimental.multimodalAnnotations等设置且仅在PR diff中生效。

VSCode 本身不提供独立的“代码评审批注”功能,所有带上下文、可提交、能同步到 GitHub PR 的批注,都依赖 GitHub Pull Requests and Issues 插件——没装它,右键菜单里根本不会出现「Add comment」;装了但配置不对,写完就丢,不是你手误,是插件压根没连上 PR 上下文。
为什么右键点了 Add Comment 却不保存?
这不是 UI 假死,而是插件在本地缓存草稿,从不自动提交。你看到的 .vscode/comment-cache.json 就是临时落盘位置,关面板、切文件、重启 VSCode,它就清空。
- 必须在 PR 差异视图(即打开某个 PR 后点击变更文件看到的 diff 界面)中操作,普通编辑器里右键无效
- 光标必须停在有变更的行号上(绿色/红色标记行),否则按钮灰掉或提交失败
- 写完后一定要点右上角
Submit comment按钮,或聚焦输入框按Ctrl+Enter(Cmd+Enteron macOS) - 状态栏显示
GitHub: Read-only (no PR context)?说明当前文件夹没被识别为 PR 所属仓库——检查是否设为活动文件夹(右键文件夹 →Set as Folder Workspace)
SSH 克隆的仓库为啥看不到 PR 上下文?
插件内部用正则解析 git config --get remote.origin.url 来提取 owner/repo,但它只匹配 HTTPS 格式(如 https://github.com/org/repo),对 git@github.com:org/repo.git 完全无视——结果 github.repository 为空,后续所有查询失效。
- 运行
git config --get remote.origin.url,输出是 SSH 地址?那就踩坑了 -
git remote -v显示的是upstream而非origin?插件直接跳过,不查 - 临时解法:改远程地址为 HTTPS:
git remote set-url origin https://github.com/org/repo - 或手动指定上下文,在
.vscode/settings.json加:"githubPullRequests.repository": "org/repo"(注意不含协议头和.git)
多模态批注(图文/语音/代码块)怎么开?
这是实验性功能,需显式开启,且仅在部分场景生效:目前只支持在 PR 差异视图中添加,不支持普通编辑器或本地未推送的变更。
- 在
settings.json中加两行:"workbench.experimental.multimodalAnnotations": true和"extensions.autoUpdate": true - 重启 VSCode,打开一个 PR 的 diff 文件,行号旁会出现
+图标,点击后弹出富文本编辑器 - 支持 Markdown、内联图片(拖入即可)、
```lang代码块,但语音留言暂未开放(API 未稳定) - 注意:该功能依赖
GitHub Pull Requests and Issues插件 v0.70.0+,旧版本无此入口
最常被忽略的一点:批注的“存活”完全取决于 PR 状态和插件上下文绑定。一旦你把仓库从多根工作区里移出来、切换了 Git 分支、或者插件后台 token 过期,之前所有未提交的草稿都会静默消失——它不报错,也不提醒,只留一个空荡荡的输入框。



















