<!-- title: 在注释里喊声AI：Aider八个暗门 -->
<!-- domain: tips-tricks -->

# 在注释里喊声AI：Aider八个暗门

**导语：** 你在用的Cursor每月20刀，而海外老手圈子里一直流传着一个免费的开源终端工具——Aider。多数人装上它只干一件事：打开终端，像聊天一样让它写代码，然后得出结论“不如Cursor好用”。这就错过了它真正的杀手锏：它能反过来住进你现有的任何编辑器，把VS Code、Vim甚至记事本全部变成AI编辑器；能接DeepSeek、本地Ollama模型把成本打到接近零；还能一条命令批量改码、自动跑测试修bug。这篇把官方文档里藏得最深的八个开关一次拧开，全部亲验自aider.chat官方文档，每条都给你可直接复制的命令。

---

## 一、先认识它：一个只收“电费”的AI码农

Aider（官网 aider.chat）是一个跑在终端里的AI结对编程工具，工具本身开源免费，你只需要为底层模型付API费用。它最强的地方在于“不挑食”——官方文档 Connecting to LLMs 页面明确列出它当前的最佳模型阵容：Gemini 2.5 Pro、DeepSeek R1 和 V3、Claude 3.7 Sonnet、OpenAI o3/o4-mini/GPT-4.1。

注意这个列表里有两个对中国用户极其友好的名字：

- **DeepSeek**：国内直连、价格只有Claude的零头，官方认证“擅长改代码”；
- **免费通道**：文档写明 OpenRouter 提供大量免费模型（每日限额），Google Gemini 也有免费档；还能接 Ollama 本地模型，彻底零成本。

也就是说：Cursor月费20美元能干的事，Aider用DeepSeek每月几美元就能干，甚至一分钱不花。这是第一个信息差。

## 二、八个暗门，逐个拧开

### 暗门1：Watch模式——在任何编辑器里“喊”AI

这是全文最值钱的一条。运行：

```
aider --watch-files
```

之后它不再等你打字，而是盯着整个仓库的文件。你在**任何编辑器**里写代码注释，只要以`AI`开头或结尾，它都会注意到：

```python
# Add error handling for NaN and less than zero. AI!
```

规则非常精细（来自官方 Watch 文档）：

- `AI?` = 只提问、不动代码；
- `AI!` = 触发动手，收集**全部**AI注释作为指令；
- 可以在多个文件里铺好几条`AI`注释，最后一条用`AI!`收网，实现跨文件协同修改；
- 懒得写完整句子也行，小写`ai!`甚至光秃秃的`ai!`都能触发，模型会看上下文猜你的意图；
- 在一个新文件里随手写个`#AI`注释并保存，这个文件就会被自动加进会话，比敲`/add`还快；
- 改完之后，Aider会自动把这些AI注释从代码里清掉。

**适用场景：** 公司电脑装不了AI插件、你用Vim/Emacs、或者你就是不想换编辑器——终端挂一个Aider，全世界都是你的AI IDE。

### 暗门2：语音写码，说中文也行

聊天里输入`/voice`，开始录音，说完按回车，你的话会被转成文字指令，Aider直接按指令改代码。加上参数切换语言：

```
aider --voice-language zh
```

`--voice-language`接受ISO 639-1语言代码，`zh`即普通话。音频格式支持wav/webm/mp3（后两种需要ffmpeg）。官方文档里的演示：对着麦克风说"add a factorial endpoint that uses math factorial"，它直接改好`app.py`并自动git commit。

**适用场景：** 复杂逻辑口述比打字快、边看设计文档边改码、手腱鞘炎的兄弟。

### 暗门3：Repo map——不挑文件，全仓库自动画地图

大多数人用AI写码最大的痛点是“不知道该喂哪个文件”。Aider用tree-sitter给整个仓库建一张结构地图（repo map），自动把最相关的符号和签名塞进上下文。相关旋钮都在：

- `--map-tokens`：控制地图token预算，设`0`可关闭；
- `--map-refresh`：刷新频率，`auto/always/files/manual`四档，省钱选`manual`；
- `--show-repo-map`：直接打印地图，看看它到底给模型“看”了什么。

**适用场景：** 接手几十万行的祖传老项目，你根本不知道改动会波及哪里——这正是repo map的主场。

### 暗门4：脚本化改码——一条命令，改完就走

Aider不是只能交互聊天。`--message`（缩写`-m`）让它处理完一条指令就退出：

```
aider -m "把所有 print 调试语句删掉" src/
```

配套的还有`--message-file`（从文件读长指令）、`--load`（启动时执行一批斜杠命令）、`--commit`（给当前所有改动生成合适的提交信息然后退出）。把这几样串进shell脚本，就是一条自动重构流水线。

**适用场景：** 批量迁移API调用、几十个文件统一换写法、甚至放进CI里让机器人干活。

### 暗门5：自动lint/测试修复循环

三个参数组成一个“自愈回路”：

- `--lint-cmd "python: flake8 --select=..."` 定义lint命令，`--auto-lint`默认开启，改完代码自动跑lint、报错自动修；
- `--test-cmd "pytest"` 定义测试命令，配`--auto-test`每次改动后自动跑测试，失败自动修；
- `--test`则是“跑测试→修问题→退出”一条龙，专为无人值守设计。

**适用场景：** 接手一个测试一大半红的烂摊子，睡前挂上`--test`，第二天看它修到哪了。

### 暗门6：架构师模式——贵模型出方案，便宜模型打字

```
aider --architect --model o3 --editor-model deepseek
```

`--architect`开启双模型分工：主模型只负责“想方案”，`--editor-model`指定的便宜模型负责把方案落成真实代码编辑。再加上`--weak-model`，连提交信息生成、历史摘要都丢给廉价模型。一层一层往下省。更狠的是`--cache-prompts`开启prompt缓存，`--cache-keepalive-pings`每5分钟发一次心跳保住缓存不过期，长会话的API账单能再砍一截。

**适用场景：** 想用顶级模型的脑子、又不想为每个字的输出付顶级价格。

### 暗门7：规范常驻——让团队代码风格刻进上下文

```
aider --read CONVENTIONS.md --chat-language zh --commit-language zh
```

`--read`挂载的文件是**只读常驻上下文**，每次对话都在场，模型永远不会跑偏你的团队规范。`--chat-language`/`--commit-language`让对话和提交信息都说中文。再配合`.aider.conf.yml`把这些参数写死在项目根目录、`.env`存API key、`.aiderignore`排除不想被分析的目录——整个团队`git pull`下来就能用同一套配置开工。

**适用场景：** 团队协作、多人共用一套AI编程规范。

### 暗门8：Git安全网——每步可回滚的底气

Aider默认每次改动自动git commit（`--auto-commits`，默认开启），提交信息由模型生成。这意味着：

- 不满意？聊天里`/undo`一步回滚；
- 想先看diff再应用？`--dry-run`只出方案不动文件；
- 提交信息想加"aider:"前缀或Co-authored-by署名？`--attribute-commit-message-committer`和`--attribute-co-authored-by`（默认开启）都给你。

**适用场景：** 让AI大规模动你的代码而不心慌——每一刀都有后悔药。

## 三、Watch模式完整工作流

```mermaid
flowchart TD
    A["终端启动 aider --watch-files"] --> B["在任意编辑器里写AI注释"]
    B --> C{"注释结尾是 AI! 还是 AI?"}
    C -->|"AI? 提问"| D["只回答 不改代码"]
    C -->|"AI! 动手"| E["收集全部AI注释"]
    E --> F["附上repo map定位上下文"]
    F --> G["生成补丁并自动commit"]
    G --> H["自动清理AI注释"]
    H --> I["不满意 聊天里 /undo 回滚"]
```

## 四、信息差总结

| 你以为的 | 实际上 |
|---------|--------|
| Aider是又一个要订阅的AI IDE | 开源免费，只付模型API钱，可接DeepSeek/免费/本地模型 |
| 必须在它的终端里打字聊天 | `--watch-files`后，任何编辑器写注释就能指挥它 |
| 用它得手动挑文件喂上下文 | repo map自动给全仓库画地图，`--map-tokens`可调 |
| 中文语音写代码不可能 | `/voice`加`--voice-language zh`即可 |
| 双模型分工是Cursor的专利 | `--architect` + `--editor-model` + `--weak-model`三级省钱 |
| AI改码没法管代码风格 | `--read`常驻规范文件 + `.aider.conf.yml`团队统一配置 |
| 让AI大改代码风险高 | 默认自动commit，`/undo`随时回滚 |

## 五、行动指南

1. 打开终端，按官网aider.chat的Install页指引安装（一条pip命令的事）；
2. 在`.env`里放入你的`DEEPSEEK_API_KEY`（或OpenRouter免费key），跑`aider --model deepseek`体验一把；
3. 加上`--watch-files`，在现有项目的任意文件里写一行`# 试试这个功能 ai!`，感受“注释指挥”；
4. 把团队规范写进`CONVENTIONS.md`，用`--read`挂载，提交时观察代码风格是否稳了；
5. 挑一个测试挂红的模块，挂上`--test-cmd "pytest" --test`过夜，早上验收。

---

**参考来源：**

1. Aider官方文档 · Aider in your IDE（Watch模式）：https://aider.chat/docs/usage/watch.html
2. Aider官方文档 · Options reference（全部命令行参数）：https://aider.chat/docs/config/options.html
3. Aider官方文档 · Connecting to LLMs（最佳模型/免费模型/本地模型）：https://aider.chat/docs/llms.html
4. Aider官方文档 · Voice-to-code（语音写码）：https://aider.chat/docs/usage/voice.html
5. Aider官网：https://aider.chat/

---
> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID： gprshome201101）维护。
> 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
