首页 › tips-tricks › Aider八大隐藏神技:终端AI编程国内没人讲

Aider八大隐藏神技:终端AI编程国内没人讲

你大概听过 Cursor、Copilot,但可能没认真用过 Aider——这个 GitHub 30k+ Star 的终端AI编程工具。问题在于,绝大多数人只知道 aider --model sonnet 然后聊天,完全不知道它藏着一套足以碾压 GUI 编码助手的隐藏技能。今天这篇文章,就是把你从"Aider小白"直接拉到"Power User"级别。

先说结论:Aider 不是另一个聊天机器人套壳。它是一个深度集成 Git 的代码编辑引擎,拥有 Repo Map 上下文、Architect 双模型、IDE 内 AI 注释、自动 Lint/Test 等一整套被严重低估的能力。国内几乎没人系统讲过这些技巧。


技巧一:IDE 内直接写 AI 注释,终端里自动执行

这是 Aider 最酷、国内最没人知道的功能,没有之一。

启动 Aider 时加上 --watch-files 参数:

aider --watch-files --model sonnet

然后在你的 IDE(VS Code、WebStorm、Vim 什么都行)里,直接在代码中写注释:

# 用 Click 库重构这个函数,支持 --host 和 --port 参数 AI!
if __name__ == "__main__":
    app.run(debug=True)
// 实现这个函数,加上 NaN 和负数的错误处理 AI!
function factorial(n) {

保存文件,Aider 自动检测到这些注释并执行。注意三种后缀的含义:

注释标记 行为
AI 标记上下文,不触发动作
AI! 触发 Aider 修改代码
AI? 触发 Aider 回答问题

关键操作步骤: 1. 终端启动 aider --watch-files 2. 在 IDE 中打开项目文件 3. 在需要修改的地方写 # 你的指令 AI! 4. 保存文件(Ctrl+S) 5. 切到终端查看 Aider 的修改结果

进阶玩法:你可以在多个文件里同时写 AI 注释(不加感叹号),最后在一个文件里写 AI! 触发。Aider 会把所有 AI 注释收集起来作为完整指令一次性执行。这意味着你可以跨文件协调修改——这个能力连 Cursor 都没有。


技巧二:Architect 双模型模式——用最强大脑思考,用最快手执行

aider --architect --model opus --editor-model sonnet

Architect 模式是 Aider 的杀手级功能。它把一次编码任务拆成两步:

flowchart LR
    A[你的需求] --> B[Architect Model<br/>如 Claude Opus]
    B --> C[设计修改方案]
    C --> D[Editor Model<br/>如 Claude Sonnet]
    D --> E[精确编辑文件]
    E --> F[提交 Git Commit]

    style B fill:#ff6b6b,color:#fff
    style D fill:#4ecdc4,color:#fff
    style F fill:#95e1d3,color:#333

为什么这样分? 因为有些模型(如 o1)推理极强但不擅长精确编辑文件。让 o1 当 Architect 出方案,让 Sonnet 当 Editor 改代码,各司其职。

实际操作:

# 方式一:命令行直接启动
aider --architect --model o1 --editor-model sonnet

# 方式二:在 Aider 内切换
/model o1
/chat-mode architect

省钱技巧:用同一个模型做 Architect 和 Editor 也有效果——因为模型有两次机会思考和修改,质量通常比单次 code 模式更好。适合处理复杂的重构任务。


技巧三:Ask/Code 弹跳工作流——先讨论再动手

这是 Architect 模式的"轻量版",只用一个模型,但效果出奇地好:

> /ask 这个函数有什么性能问题?
# Aider 分析并回答...

> /ask 用异步重写的话需要改哪些文件?
# Aider 给出方案...

> do it                          ← 切到 code 模式,直接执行
# Aider 开始修改文件...

核心逻辑:先在 /ask 模式下充分讨论方案(不碰代码),达成共识后用 /code 或 /ok 一键执行。因为上下文已经包含了讨论过程,Aider 执行的准确率远高于直接说"帮我重构"。

快捷方式: - /ask 你的问题 — 单次提问模式 - /code 你的指令 — 单次编码模式 - /chat-mode ask — 持久切换到 ask 模式 - /ok — 快速确认"就这样改"


技巧四:CONVENTIONS.md——让 AI 写出符合你团队规范的代码

90% 的 Aider 用户不知道这个功能。

创建一个 CONVENTIONS.md 文件:

- 优先使用 httpx 而不是 requests
- 所有函数必须加类型注解
- 使用 Pydantic v2 进行数据验证
- 错误处理用 loguru 记录日志
- 测试使用 pytest + pytest-asyncio

然后用 /read 加载(注意不是 /add):

aider --read CONVENTIONS.md
# 或在会话中
/read CONVENTIONS.md

为什么用 /read 而不是 /add? 因为 /read 把文件标记为只读+可缓存。如果模型支持 Prompt Caching(如 Claude),这个文件会被缓存,后续请求不重复计费。

永久加载:在 .aider.conf.yml 中配置,每次自动加载:

read: CONVENTIONS.md

实际效果对比: - 不加 CONVENTIONS.md → Aider 用 requests、不加类型注解 - 加了 CONVENTIONS.md → Aider 用 httpx、自动加 -> str 类型注解

社区还有一个 conventions 仓库,里面有各种语言的最佳实践模板可以直接抄。


技巧五:Repo Map——不用手动选文件,AI 自动理解整个项目

这是 Aider 与所有 GUI 编码助手的核心技术差异。

Aider 会自动构建一个仓库地图(Repository Map),使用图排序算法(类似 PageRank)计算哪些代码符号最关键:

# Aider 自动生成的 Repo Map 示例(你不需要手动操作)
aider/coders/base_coder.py:
├── class Coder:
│   ├── abs_fnames = None
│   ├── @classmethod create(self, main_model, edit_format, io, ...)
│   ├── abs_root_path(self, path)
│   └── run(self, with_message=None)

aider/commands.py:
├── class Commands:
│   ├── voice = None
│   ├── get_commands(self)
│   ├── get_command_completions(self, cmd_name, partial)
│   └── run(self, inp)

这意味着什么? 即使你只 /add 了一个文件,Aider 也能看到整个仓库的类结构、函数签名、调用关系。它知道你项目里有哪些模块,哪些工具函数可用。

调优参数:

# 增加 Repo Map 的 token 预算(默认 1k,建议 2k-4k)
aider --map-tokens 4096

# 查看当前的 Repo Map
/map

# 强制刷新(当你新增了很多文件时)
/map-refresh

实战建议:大型项目(1000+ 文件)建议把 --map-tokens 调到 4096 或更高。小型项目默认值够用。


技巧六:自动 Lint + Test——改完代码自动检查质量

每次 AI 改完代码都手动跑测试?Aider 能自动化这个过程:

# 启用自动 lint
aider --auto-lint

# 配置自定义 linter
aider --lint-cmd "ruff check --fix"

# 按语言配置不同 linter
aider --lint "python: ruff check" --lint "javascript: eslint"

# 启用自动测试
aider --auto-test --test-cmd "pytest tests/"

# 同时启用 lint + test
aider --auto-lint --auto-test --test-cmd "pytest"

工作流:

flowchart TB
    A[你提需求] --> B[Aider 修改代码]
    B --> C{自动 Lint}
    C -->|有错误| D[Aider 自动修复]
    D --> C
    C -->|通过| E{自动 Test}
    E -->|测试失败| F[Aider 自动修复]
    F --> B
    E -->|通过| G[Git Commit ✅]

    style C fill:#f9d74e,color:#333
    style E fill:#4ecdc4,color:#fff
    style G fill:#95e1d3,color:#333

编译型语言技巧:用 lint 做单文件编译检查,用 test 做全项目构建:

# Rust 项目示例
aider --lint-cmd "rustc --edition 2021" --test-cmd "cargo build && cargo test"

# Go 项目示例  
aider --lint-cmd "gofmt -d" --test-cmd "go build ./... && go test ./..."

# .NET 项目示例
aider --test-cmd "dotnet build && dotnet test"

技巧七:本地模型零成本编程——Ollama + Aider

完全不想花钱?用本地模型免费编程:

# 1. 拉取模型
ollama pull qwen2.5-coder:32b

# 2. 启动 Aider(注意用 ollama_chat 前缀)
aider --model ollama_chat/qwen2.5-coder:32b

重要配置:Ollama 默认只给 2k 上下文窗口,会静默丢弃超出的内容。Aider 默认会自动处理这个问题,但你也可以手动设置:

在项目根目录创建 .aider.model.settings.yml:

- name: ollama/qwen2.5-coder:32b
  extra_params:
    num_ctx: 65536

免费模型推荐:

模型 大小 编码能力 适合场景
qwen2.5-coder:7b 4.7GB ⭐⭐⭐ 轻量修改、8GB 内存机器
qwen2.5-coder:32b 19GB ⭐⭐⭐⭐ 日常开发、32GB 内存
deepseek-coder-v2:16b 9GB ⭐⭐⭐⭐ 复杂逻辑、16GB 内存
codestral:22b 13GB ⭐⭐⭐⭐ 多语言项目、16GB 内存

技巧八:Thinking Tokens + Reasoning Effort——精确控制推理深度

这是 2025-2026 年模型新增的能力,大多数用户完全不知道:

# 设置思考 token 预算
aider --thinking-tokens 8k

# 或在会话中动态调整
/think-tokens 10k

# 调整推理努力程度
aider --reasoning-effort high
/reasoning-effort medium

什么意思? 支持 Extended Thinking 的模型(如 Claude Sonnet 4.6、o1)可以在回答前"思考"。--thinking-tokens 控制思考预算,--reasoning-effort 控制推理强度。

省钱策略: - 简单修改(改个变量名、加个注释)→ --thinking-tokens 0(关闭思考) - 中等任务(新功能、bug 修复)→ --thinking-tokens 4k - 复杂任务(架构重构、算法实现)→ --thinking-tokens 16k 或更高

动态切换:在会话中随时用 /think-tokens 和 /reasoning-effort 调整,不需要重启。


其他隐藏宝石(速览)

功能 命令 说明
语音输入 /voice 直接说话给 Aider,自动转文字
URL 抓取 /web https://docs.example.com 抓取网页内容作为上下文
会话保存 /save session.aider 保存当前会话,下次 /load 恢复
Token 报告 /tokens 查看当前上下文用了多少 token
Diff 查看 /diff 查看上次修改的 diff
撤销修改 /undo 撤销 Aider 的最后一次 commit
多行输入 {tag ... tag} 用自定义标签包裹多行文本
外部编辑器 /editor 或 Ctrl-X Ctrl-E 用 Vim/NeoVim 编写长 prompt
快捷启动 aider --sonnet / aider --opus 省去 --model 的完整名字
暗色模式 aider --dark-mode 终端深色主题自动适配
Vim 模式 aider --vim 启用 Vim 键绑定
复制上下文 /copy-context 把对话导出为 Markdown,可粘贴到 Web UI
配置文件 .aider.conf.yml 所有参数都可以持久化到配置文件

信息差总结

你以为的 Aider 实际上的 Aider
只能在终端聊天 --watch-files 支持 IDE 内 AI 注释
只能用一个模型 --architect 支持双模型协作
手动选文件 Repo Map 自动理解整个项目结构
改完手动测试 --auto-lint --auto-test 全自动
只能用付费 API ollama_chat/ 支持本地模型零成本
编码风格不可控 CONVENTIONS.md 精确控制输出规范
推理深度不可调 --thinking-tokens 精确控制
需要 GUI 工具 纯终端,SSH 远程服务器也能用

行动指南

第一步:安装 Aider(5 分钟)

pip install aider-install
aider-install

第二步:创建项目配置文件 .aider.conf.yml

model: sonnet
read: CONVENTIONS.md
auto-lint: true
map-tokens: 2048
dark-mode: true

第三步:创建 CONVENTIONS.md 写入你的团队编码规范

第四步:用 --watch-files 模式打开,在 IDE 中体验 AI 注释魔法

第五步:遇到复杂重构,切到 --architect 模式,用双模型搞定


参考来源


本文由「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学通信知识星球海报-扫码加入