用 Codex IDE 扩展修改代码并在分享前审查差异

用 Codex IDE 扩展修改代码并在分享前审查差异

你可以在编辑器中打开文件的同时使用 Codex,修复一个小型界面问题,查看每一行改动,并在分享之前亲自测试。第一次操作可预留约 30 分钟。需要 VS Code 或兼容的编辑器、Codex 扩展、测试仓库和有使用权限的账号。最终结果应该是范围明确的修改、读过的 diff 和实际跑过的测试。

OpenAI 的 Codex IDE extension 指南介绍了如何把当前文件或选中的代码带入提问,在编辑器里查看摘要和修改,并在同一对话中继续追问。如果你习惯从终端开始,可以阅读首次使用 Codex CLI 修改代码的指南。本文适合希望在编辑器里同时掌握上下文和改动的人。

🧰 准备工作

**工具:**在 VS Code、Cursor 或 Windsurf 安装 Codex 扩展。打开仓库并点击 Codex 图标。如果看不到图标,从 Command Palette 运行 Codex: Open Codex Sidebar,再按界面提示登录。Xcode 和 JetBrains 有各自的集成方式,以下步骤针对 VS Code 类扩展。

**输入材料:**选择一个看得见的小问题。例如,邮箱为空时“发送”按钮仍然可点击。找出界面文件、相关测试文件和仓库的测试命令。命令不清楚时先看 README。委派修改前建立一个 Git 检查点,便于比较和撤销;OpenAI 也建议这样做。

**边界:**使用独立工作分支,不要以真实客户数据或密钥作为示例。在允许 Codex 执行命令前检查权限;Codex 范围与审批指南说明了做法。选中的代码只是问题的上下文,不会自动授予 agent 更多访问权限。

🪜 分步操作

1. 打开正确代码,只提供必要上下文

打开表单文件,选中控制“发送”按钮的代码。在 Codex 的输入框中,你可以引用已打开的文件、选区或最近的对话。扩展命令中的 chatgpt.addToThread 可添加选区,chatgpt.addFileToThread 可添加整个文件。可从 Command Palette 查找这些命令。/ide-context 控制自动提供的 IDE 上下文。

不要因为还没找到问题,就在一个提问中塞入整个仓库。先让 Codex 给出文件路径,再亲自打开核对。如果已经知道位置,请写明文件和当前行为。先用只读请求:

请检查 [表单文件路径] 和选中的代码,解释邮箱为空时“发送”按钮为何仍可点击。先说明处理流程,并指出相关测试文件。暂时不要修改代码。

有用的回答会指出具体函数或代码行、当前条件和验证方法。如果 Codex 只是猜测却找不到代码,请继续要求证据。第一次接触能读写文件的 agent,可以先看什么是 AI agent。

2. 提出一项有边界的修改

确认文件后,提出一个小修改。说明用户能看到的结果、文件范围和验证方法。把方括号中的占位内容替换成你的仓库路径:

修改 [表单文件路径],使邮箱为空或只包含空格时“发送”按钮不可点击。邮箱有效时保留现有行为。如果仓库已有表单测试,只更新相关测试。不要改动其他页面。修改后列出变更的文件和运行过的测试命令。

如果建议的修改涉及身份验证、支付或数据文件,请停下来重新评估范围。一个小请求并不保证 Codex 只修改一个文件。阅读变更文件列表;保留额外改动之前,要求解释它与当前问题的关系。

Developer settings说明,Codex 运行时发出的消息默认进入队列(queue),也可以引导当前运行(steer)。按 Cmd 或 Ctrl + Shift + Enter 可临时反转一次行为。添加紧急限制之前先检查模式;排队中的消息尚未影响正在进行的修改。

3. 先读摘要,再在编辑器里看 diff

Codex 表示完成后,先利用摘要定位修改,再打开每个文件的 diff。IDE 指南介绍了如何在源码旁查看改动,并在同一对话里追问。摘要方便导航,diff 才展示实际变更的代码行。逐项检查:

  • 按钮是否只在要求的条件下禁用?有效输入时能否正常使用?
  • 新逻辑是否处理了只有空格的输入?
  • 测试是否覆盖空值和有效值?
  • 是否有无关文件被修改、删除或大面积重新格式化?
  • 新代码是否读取 token、向网络发送数据或修改权限设置?

无需理解每个实现细节,也能从 diff 中发现问题。可以让 Codex 解释难懂的代码行,但仓库负责人或 reviewer 仍应亲自阅读。如果某段不对,请指出需要删除或修改的部分。每次追问后重新查看 diff,因为最终版本可能已经变化。

4. 运行测试,请 Codex review 未提交的改动

运行仓库的测试命令并阅读输出。如果缺少依赖或无法执行,记录原因,交给有合适环境的人。针对界面变化,打开测试页面,分别尝试空邮箱和有效邮箱。自动化测试与手工检查回答的是不同问题。

有了 diff 之后,可以在输入框中使用 /review,请 Codex 审查未提交的改动,或将其与基础分支比较。OpenAI IDE 命令列表说明了这个功能。请求尽量具体:

请 review “发送”按钮任务的未提交改动。查找逻辑错误、边界情况和缺少的测试。每项发现都写出文件路径、相关代码行和原因。本次 review 不要修改代码。

/review 只是多一轮审查,不能代替阅读 diff、运行测试和人工批准。编辑器设置中的 chatgpt.reviewDelivery 在可用时默认使用 inline;选 detached 可单独开启 review 对话。这是界面呈现设置,不是命令权限策略。

5. 留下验证记录后再分享

提交代码或创建 pull request 前,记录目标、变更文件和测试结果。如果界面变化可见,保存前后截图。review 后再次阅读最终 diff。如果只保留部分修改,用编辑器的 Git 工具选择,再重新运行测试。Codex 说“修好了”,不代表代码已经发送到共享仓库。

如果任务扩大或需要独立运行环境,Codex IDE extension在账号具备权限时可以把工作交给 Codex web。完成后仍要回到编辑器检查结果。Codex Cloud 从错误到 pull request 的指南介绍了该流程。本文只处理编辑器内的小修改。

✅ 示例结果

在测试仓库中,Codex 指出 disabled 条件没有去除空格。你要求只修改表单并添加两个测试。Diff 只包含组件和测试文件。测试命令通过;手工检查发现空邮箱时按钮禁用,有效邮箱时恢复可用。/review 没提出新问题,但 reviewer 仍在创建 pull request 前阅读 diff。如果测试失败,应如实记录失败及原因。

💡 改进建议

  • 先给出选区或一个相关文件。只有在有明确理由时才补充其他文件。
  • 每轮只要求一种可观察的行为和一项对应检查。
  • 建立 Git 检查点,每轮后都查看 diff。
  • 将 chatgpt.* 留在编辑器设置中。Developer settings把它与 config.toml 区分开。后者保存与 CLI 共用的模型、权限、sandbox 和 MCP 设置。
  • 在 Windows 上,只有仓库和工具确实位于 WSL2 时,chatgpt.runCodexInWindowsSubsystemForLinux 才有帮助。修改该设置会重新加载 VS Code。

⚠️ 已知限制

IDE 上下文不代表 Codex 理解了整个仓库。打开的文件可能不是最新版本,选区可能遗漏关联函数,测试也可能无法在你的设备上运行。证据不足时,请打开相关文件继续追问。涉及安全、资金或客户数据的修改,需要领域专家审核。

chatgpt.* 设置影响扩展在编辑器中的显示和消息处理方式,不会授予 agent 权限。相反,config.toml 或组织策略的变更可能同时影响 CLI 与 IDE。不要随意切换界面设置来处理权限错误。OpenAI 可能更新按钮名称和路径,操作时请核对当前界面。

❓ 常见问题

Cursor 或 Windsurf 用户能照着做吗? OpenAI 将它们列为兼容 Codex 扩展的编辑器。按钮位置可能不同,但 Codex 图标和打开侧边栏的命令是起点。

选中代码就能限制 Codex 只修改这段吗? 不能。选区为请求提供上下文。仍需在提示中说明修改范围,完成后检查完整 diff。

/review 会自动运行测试并保证代码正确吗? 不会。它启动变更审查。你仍要运行测试、阅读结果,并检查需要修复的行为。

为什么补充消息没影响正在进行的修改? 它可能在 chatgpt.followUpQueueMode = queue 下排队。检查当前模式,必要时选择引导本次运行。

换模型需要修改 VS Code 中的 chatgpt.* 吗? 不需要。模型和与 CLI 共用的 agent 设置位于 config.toml;chatgpt.* 控制扩展在编辑器中的行为。

官方来源:Codex IDE extension、Developer settings、Developer commands。OpenAI Learn,核对日期:2026 年 10 月 5 日。

#Codex #IDE #AIAgent #VibeCoding

更多文章