AIDER AI and Emacs
Emacs
AI
2024-10-07 689字

最近被 aider 这个工具种草了, aider 是一个终端的 AI 结对编程工具, 可以对接很多 AI 模型, 包括我最近超爱的 OpenRouter

aider 这个工具最强大的地方在于它的代码地图 功能:

  1. 首先, 它使用 tree-sitter 分析代码仓库的代码地图, 包括最重要的类和函数及其类型和调用签名
  2. 其次, 它将代码地图和用户的请求一起发给 AI, 帮助 AI 理解多个代码和函数之间的关系
  3. 最后, 当 AI 需要查看具体文件或函数的实现时, aider 会自动将具体的实现发给 AI

这样的好处是, AI 不光是能写一些小的验证型 demo, 还能借助代码地图真正的修一些真实项目里面的 bug, 比如我晚上修复的 eaf-git delete hunk 补丁, 整个补丁全程是我问问题, aider 自动写补丁, 甚至可以补丁之上继续写补丁, 直到我验证通过, 真的非常方便。

aider 这种编程方式不仅仅是节省了粘贴复制 AI 生成代码的时间, 更重要的是自动提供代码仓库信息生成补丁, 真的节省了太多时间了, 强烈推荐 Vim/Emacs 党使用。

Emacs 党可以参考我的配置

aider的安装方法

因为 aider 只能支持到 Python 3.12 , 而我的系统是 Python 3.13, 可以使用 uv 来安装 aider:

uv tool install --force --python python3.12 aider-chat@latest

安装完成以后, 直接用 aider 命令就好了, uv 把 aider 安装到 ~/.local/bin/aider 这里。

uv 我的感觉是, 相对于 pyenv 这些工具来说, 自动安装虚拟环境并把二进制暴露到 bin 目录下, 使用工具不需要来回的激活环境和进入环境, 很是方便。