抛砖引玉: 介绍命令行AI编程工具aider以及emacs集成aider.el

plandex宣称的优点是可以做复杂的修改, 不知道有没有同时用过plandex和aider的同学可以介绍/比较它们. 特别是plandex的优点

有些开发/服役数十年的软件简直就是传奇,比如emacs, postgresql, curl. etc. 作为开发者而言, 用熟练的工具就好象本能一样, 换编辑器/程序设计语言/重要的开发工具都是很不舒服的事情. AI开发工具这种没有明确的说明书需要自己慢慢摸索的更是. 希望aider这个项目能好好开发维护下去, 还是有不少用户的. 我司也有一群人用,

aider.el 0.12.0 发布公告:AI修复Flycheck报告的错误,更好地集成 Magit,提升文件管理体验,等等。

1. 新功能与改进

上下文代码辅助工具

  • 使用 aider 自动修复 Flycheck 报告的代码错误。(aider-flycheck-fix-errors-in-scope)
  • 基于给定的上下文(文件、函数、区域)或所有已添加文件,结合用户目标进行启发式讨论(aider-start-software-planning)。

文件添加与删除优化

  • /drop 命令支持只列出已添加的文件进行补全,可在 aider comint 缓冲区删除光标所在文件。
  • 通过 aider-expand-context-current-file 半自动扩展上下文,包含当前文件及相关依赖和被依赖文件。
  • aider-add-module 支持添加内容匹配指定正则表达式的文件,用于在整个模块内加入某个主题相关的文件。

Git 集成与版本控制

  • 使用 aider-magit-log-analyze 分析整个 Git 仓库演化历史。
  • 重新设计 diff/review 生成流程,提供更清晰的用户提示(aider-pull-or-review-diff-file)。
  • 通过 aider-magit-setup-transients 将 Aider 相关 Git 命令注册到 Magit 菜单。

用户交互与易用性

  • 支持每个仓库内多聊天会话,按 Git 分支映射(分支专属 aider 会话)。
  • 菜单优化,适合窄屏显示(1 栏或 2 栏布局),适配分辨率 ≤1280 x 960。
  • aider-comint 支持以前会话的输入历史。

2. Bug 修复与其他

  • 优化 aider-add-module 中用户输入的默认值(如后缀输入、内容正则表达式)。
  • 修正 aider-pull-or-review-diff-file,确保始终使用对应远程分支前缀(origin/)。
  • 修复 aider-comint-mode 中反复出现的正则表达式错误。
  • 更新热门模型:DeepSeek 模型升级到 R1(0528 版本)。

推荐尝试的有趣功能:

  1. 让 aider 自动修复 Flycheck 报告的错误(aider-flycheck-fix-errors-in-scope)。
  2. 用大语言模型对你的代码或仓库进行头脑风暴(aider-start-software-planning)。
  3. 在文件级别半自动扩展上下文(aider-expand-context-current-file)。
  4. 通过 Git 仓库演化分析更好地理解项目(aider-magit-log-analyze)。

谢谢网友Spike-Leung的反馈建议, 以及代码贡献.

欢迎尝试,有任何反馈或问题请告诉我或者在aider.el github repo里create issue,谢谢

1 个赞

我前几天试了 aider, 没有搞懂如何为它配置第三方的 openai 类型的 provider (使用自定义而非内置的官方 api url, key, model),这导致我几乎放弃了它

似乎最近出了 gemini-cli 和 claude-code,现在用上了 claude-code.el

按道理说常用的模型aider应该都蛮好配置的 除非要自己写yaml

Claude code确实比aider更智能化 能处理更大的code base 会自己寻找相关文件 我现在也用Claude code 但我觉得aider也还是有他的使用场景

  1. 对代码库非常熟悉 知道大概怎么改 手动加文件 用prompt 让aider改 相比Claude code算是半自动

  2. Claude code还是挺贵的 aider + deepseek几乎免费

欢迎分享Claude code的使用经验 尤其怎样才能最大化它的能力

aider.el设置 aider 的命令行参数 ,关于如何配置第三方 openai 的 provider,实际要看是 aider 本身是如何配置的。

你可以看看 Connecting to LLMs | aider 中是否包含你需要用到的 provider。

其中有一个是 OpenAI compatible APIs | aider ,按照文档,你需要配置:

# Mac/Linux:
export OPENAI_API_BASE=<endpoint>
export OPENAI_API_KEY=<key>

# Windows:
setx OPENAI_API_BASE <endpoint>
setx OPENAI_API_KEY <key>
# ... restart shell after setx commands

然后:

# Change directory into your codebase
cd /to/your/project

# Prefix the model name with openai/
aider --model openai/<model-name>

所以,最终在 aider.el 你需要配置的大概是这样的 (以 Siliconflow 为例):

(setenv "OPENAI_API_BASE" "https://api.siliconflow.cn")
(setenv "OPENAI_API_KEY" siliconflow-api-key)
(setq aider-args '("--model" "openai/siliconflow-model-name")) ;; 你还可以添加其他 aider 的命令行参数
1 个赞

是的,价格是一个问题,目前我是找了一个中转商,一个月 70, 每日有 $25 这样子。用 sonnet 40000 字符,一千行,第一轮对话消耗 $0.16, 后续几轮每轮也差不多这个数字

不过由于 claude-code 可以随便指定兼容的 api, 所以甚至有一些工具可以 任何 openai 接口 转 claude api 格式,然后给 claude-code 这种用法。不过我没有折腾这个

关于 claude-code, 我也刚用,现在经验没得,看别人经验可以去这个站点搜索

1 个赞