App 界面与基础操作

主界面概览

Codex 的主界面设计简洁而功能强大,主要由以下几个核心区域组成:

┌────────────────────────────────────────────┐
│ 标题栏  [项目名称] [状态] [-] [□] [×]    │
├──────────┬─────────────────────────────────┤
│          │                                  │
│ 侧边栏   │    对话区域                      │
│          │    ┌──────────────────────┐      │
│ 文件浏览 │    │  用户: 请实现一个... │      │
│          │    ├──────────────────────┤      │
│ 对话历史 │    │  Codex: 好的,我来  │      │
│          │    │  分析需求...         │      │
│          │    │                      │      │
│ 设置入口 │    └──────────────────────┘      │
│          │                                  │
│          │  ┌────────────────────────────┐  │
│          │  │ ▸ 输入消息...    [发送]    │  │
│          │  └────────────────────────────┘  │
├──────────┴─────────────────────────────────┤
│ 状态栏 [模型] [Token: 1234/10000] [连接]   │
└────────────────────────────────────────────┘

对话区域

对话区域是 Codex 的核心界面,在这里您与 AI 进行交互:

消息显示

  • 用户消息:显示在右侧,带头像标识
  • Codex 回复:显示在左侧,包含文本和代码块
  • 代码块:自动语法高亮,支持复制和展开
  • 操作记录:显示 Codex 执行的文件操作和命令

代码块交互

对话中的代码块支持以下操作:

  • 复制 — 一键复制代码内容
  • 展开/折叠 — 查看完整代码
  • 应用修改 — 将修改直接应用到文件
  • 差异对比 — 查看修改前后的对比

输入框

底部的输入框支持:

  • 多行输入:使用 Shift + Enter 换行
  • 斜杠命令:输入 / 查看可用命令列表
  • 文件拖拽:将文件拖入输入框可引用文件
  • 代码粘贴:直接粘贴代码片段

终端面板

终端面板显示 Codex 执行的命令及其输出:

功能特点

  • 实时显示命令输出流
  • 命令执行状态指示(运行中/成功/失败)
  • 支持命令展开查看详情
  • 显示命令执行时间

操作方式

# 在 Codex 中执行命令
# 直接描述你需要执行的操作
"安装项目依赖"
# Codex 会自动执行 npm install 或 yarn

文件浏览器

侧边栏中的文件浏览器帮助您快速浏览项目结构:

功能列表

  • 目录树:展示项目文件结构
  • 文件预览:点击文件快速预览内容
  • 文件搜索:按名称搜索文件
  • Git 状态:显示文件的 Git 修改状态(M/A/D)
  • 忽略文件:遵守 .gitignore 规则

文件图标

图标含义
M已修改(Modified)
A已添加(Added)
D已删除(Deleted)
U未跟踪(Untracked)
C有冲突(Conflict)

对话历史

对话历史面板记录您的所有会话:

历史管理

  • 按时间排序的会话列表
  • 会话标题自动生成
  • 搜索历史会话
  • 删除不需要的会话
  • 导出会话记录

会话操作

# 在 Codex 中管理会话
/clear        # 清除当前对话
/compact      # 压缩对话以节省 Token

设置面板

设置面板分为以下几个主要部分:

通用设置

  • 语言选择(中文/English)
  • 界面主题
  • 字体大小
  • 自动更新

模型设置

  • 默认模型选择
  • API 端点配置
  • Token 限制设置
  • 温度参数调整

权限设置

  • 文件系统权限
  • 命令执行权限
  • 网络访问控制

高级设置

{
  "editor": {
    "tabSize": 2,
    "insertSpaces": true
  },
  "terminal": {
    "shellPath": "/bin/zsh",
    "timeout": 30000
  }
}