# 5.4 环境变量冲突

## 功能说明

CC Switch 会自动检测系统环境变量与应用配置的冲突，避免配置被意外覆盖。

**检测的环境变量**：
- `ANTHROPIC_API_KEY` - Claude API 密钥
- `ANTHROPIC_BASE_URL` - Claude API 端点
- `OPENAI_API_KEY` - OpenAI API 密钥
- `GEMINI_API_KEY` - Gemini API 密钥
- 其他相关环境变量

## 冲突警告

当检测到冲突时，界面顶部会显示黄色警告横幅：

```
⚠️ 检测到环境变量冲突
发现 X 个环境变量可能与 CC Switch 配置冲突
[展开] [关闭]
```

## 查看冲突详情

点击「展开」按钮查看详细信息：

| 字段 | 说明 |
|------|------|
| 变量名 | 环境变量名称 |
| 变量值 | 当前设置的值 |
| 来源 | 变量的来源位置 |

### 来源类型

| 来源 | 说明 |
|------|------|
| 用户注册表 | Windows 用户级环境变量 |
| 系统注册表 | Windows 系统级环境变量 |
| Shell 配置 | macOS/Linux 的 shell 配置文件 |
| 系统环境 | 系统级环境变量 |

## 处理冲突

### 选择要删除的变量

1. 勾选要删除的环境变量
2. 或点击「全选」选择所有冲突变量

### 删除变量

1. 点击「删除选中」按钮
2. 确认删除操作
3. CC Switch 会自动备份并删除选中的变量

### 自动备份

删除前会自动备份：

- 备份位置：`~/.cc-switch/env-backups/`
- 备份格式：JSON 文件
- 包含变量名、值、来源等信息

## 忽略警告

如果确认冲突不影响使用，可以：

1. 点击警告横幅右侧的「关闭」按钮
2. 警告会暂时隐藏
3. 下次启动时会重新检测

## 手动处理

如果不想通过 CC Switch 删除，可以手动处理：

### Windows

1. 打开「系统属性 → 高级 → 环境变量」
2. 在用户变量或系统变量中找到冲突变量
3. 删除或修改变量

### macOS / Linux

1. 编辑 shell 配置文件（如 `~/.zshrc`、`~/.bashrc`）
2. 删除或注释掉相关的 `export` 语句
3. 重新加载配置：`source ~/.zshrc`

## 为什么会冲突

环境变量的优先级通常高于配置文件，可能导致：

- CC Switch 设置的供应商配置被覆盖
- API 请求发送到错误的端点
- 使用错误的 API 密钥

## 最佳实践

1. **使用 CC Switch 管理配置**：避免在系统环境变量中设置 API 密钥
2. **定期检查**：关注冲突警告，及时处理
3. **备份重要变量**：删除前确认已备份

## 恢复已删除的变量

如果误删了环境变量：

1. 找到备份文件：`~/.cc-switch/env-backups/`
2. 打开对应的 JSON 文件
3. 手动恢复变量到系统环境
