Aidermacs:Emacs 里的 AI 代码助手,真正适配 Emacs 的 Aider 体验

对, 还可以定义一个函数的变量, 默认为project-root, 用户keyi 定制该变量, 比如我这边有一套自己实现的project, 用了七八年了

印象中有不少package会用到工程根目录, 有的pckage就是这么做的, 这样也让用户可以使用其他工程管理包, 用户自己可以简单封装一个函数

这个是个好方法

brew 可以直接下载vterm lib,不需要编译了

2 个赞

@Spike-Leung 你的想法非常好,其实你说的这些功能几周前就在Aidermacs实现了,你说的这个更方便的方法就是Aidermacs已经做的事情,其中要感谢社区的PR。不管是mark再drop,还是interactive drop,这根本不是小题大做,而是很重要的QoL功能。

我不会为了偷懒而少写代码,为了强行适配别人的所谓well tested功能而降低自己的使用体验,然后转过来把偷懒包装成differentiator feature强调自己的区别。自己的日常体验效率降低了,偷懒而少写的这几行代码真的值吗?我觉得还是多学习Elisp,少说点[漂亮话(beautiful language)](https://emacs-china.org/t/ai-aider-emacs-aider-el/28064/150),花点token让AI写代码,最后节省的时间精力is well paid off。

请问下大家一般用的哪个模型呀?另外,aidermacs和aider.el gptel 比有什么优势呢?

我GPT Plus会员日常高强度用,代码是claude>deepseek>gemini混着用,取决于难度和性价比。

Aidermacs和gptel是平行关系,可以都用,Aidermacs强调对项目的总体理解和Pair Programming能力,直接对标的是Cursor,gptel我个人用得很少,但更多是对其他非项目相关的文本处理有时候会用一下(但更多时候我直接ChatGPT了)

Aidermacs相对于Aider.el有10点主要优势

  1. 内置Ediff集成

    • 自动捕获AI编辑前的文件状态
    • 使用Emacs原生的ediff界面进行代码比较
    • 支持语法高亮,使代码变更更清晰易读
    • 提供交互式工作流,可以逐行接受或拒绝变更
  2. 智能模型选择

    • 自动从OpenAI、Anthropic、DeepSeek等多个供应商获取可用模型
    • 实时检查模型与当前Aider版本的兼容性
    • 自动过滤仅显示当前API密钥支持的模型
    • 缓存常用模型列表,提高访问速度
    • 支持动态发现和预配置模型
  3. 灵活的终端后端支持

    • 支持comint和vterm两种终端后端
    • 可根据需求选择最适合的终端模拟方式
  4. 更智能的语法高亮

    • AI生成的代码自动应用正确的语法高亮
    • 提高代码可读性,无需额外配置
  5. 更好的多行输入支持

    • 原生支持多行输入,无需特殊语法
    • 提供专门的快捷键(如S-RET)来插入换行符而不发送命令
    • 支持直接粘贴代码块,自动处理格式
    • 在编写复杂请求时保持自然的工作流
  6. 增强的文件管理功能

    • 列出当前会话中的所有文件(/ls命令)
    • 交互式选择要添加或删除的文件
    • 支持从Dired标记的文件批量添加或删除
    • 创建临时草稿文件来添加代码片段或笔记
    • 支持远程文件(通过Tramp)
  7. 更高的可配置性

    • 提供更多自定义选项来满足个人偏好
  8. 优化的Transient菜单

    • 完全重新设计的菜单系统
    • 更注重功能性和人体工程学
  9. 灵活的内容添加方式

    • 多种方式向会话添加内容
    • 支持创建临时草稿文件
  10. 社区驱动开发

    • 积极开发和维护,26个contributor
4 个赞

这种直接调 API 接口的一个月大概花费是多少? 用多了比起 cursor 之类的一个月 20 刀会不会超过很多?

我用了一下,aidermacs 里面可以一个一个的选择当前的文件进行删除。

也能列出当前 /ls 的文件,不过在那个模式下看起来是一个 dired mode ?标记了删除,就是删除文件了,而不是 /drop。

不知道是不是我的设置不对,我执行 /add 和 /drop 的时候会稍微卡顿一下,然后命令才发送到 aider,似乎是发送前先执行了一些动作。

我今天用 aider 写了一个 H5 的页面功能,调用 openrouter 的 sonnet 3.7 的 api,基本一天都有在用,大概是 2.2 美元左右,一杯奶茶的价格,仅供参考。

说到底,和你给 LLM 的 context 有关,context 越大,input 的 token 越多,就越贵。

只是问问题,做一些简单的任务其实消耗不了多少 token,但用 aider 之类的写代码,有大量上下文,就会比较贵。

也和你选择的模型有关。不过如果是写代码,目前用下来还是 sonnet 比较好用。

是dired,不能真的删文件,你得用 aidermacs-batch-drop-dired-marked-files 也就是 k

是有点性能问题,我顺手修好了,马上push到master

3.7还是太贵了,我是五刀五刀的买,如果不控制可能几天就五刀了。我好几个模型混着用,成本降了不少。

1 个赞

实战用下来,发现 Claude 最强的还是指令遵循能力,贵是真的贵。deepseek-v3 的表现稍差一点,但是总体也还行。

在这里要批评一下 o3-mini-high,跑分和做竞赛题厉害真的不代表做 CRUD 的功夫就能够做得很好。稍微长一点的代码和上下文,指令遵循能力表现就不行了,输出的格式就会反复的解析失败。

我在aidermacs环境几乎没用过o3-mini,又贵又慢又一般,只在ChatGPT客户端上面用,日常思考稍微复杂一点的问题还是很可以的

请问一下deepseek-v3和deepseek-r1作为 代码助手哪个更合适,有比较推荐吗?

r1 做 architect v3 来写。 r1 写 crud 不合适,慢而且指令遵循能力也不如 v3。不过 r1 太慢了 (主要是思考的时间长,倒不是本身真的很慢),很多时候等不动了就直接只用 v3

1 个赞

赞一个 32

感觉大家都在积极探索LLM在辅助编程上的交互模式,从copilot到cursor,感觉还有很多模式可以挖掘哇,期待

1 个赞

初步测试ok, 只运行了aidermacs-run, 没有报错, 进入交互界面. 但是我的ollama服务好像有点问题, 所以功能还没有完全用起来.

稍后继续反馈

1 个赞

很好,可以用免费的openrouter LLM或者gemini测试

Aidermacs最新版藉着刚推出的Aider 0.78,重写了选择model的逻辑,这下M-x aidermacs-change-modelo可以选Main/Reasoning模型,Editing模型和Weak模型了。

这几个defcustom也更加明朗了起来:

(defcustom aidermacs-default-model "sonnet"
  "Default AI model to use for aidermacs sessions when not in Architect mode."
  :type 'string)

(defcustom aidermacs-architect-model aidermacs-default-model
  "Default reasoning AI model to use for architect mode.
Defaults to `aidermacs-default-model' if not explicitly set."
  :type 'string)

(defcustom aidermacs-editor-model aidermacs-default-model
  "Default editing AI model to use for architect mode.
Defaults to `aidermacs-default-model' if not explicitly set."
  :type 'string)

(defcustom aidermacs-weak-model nil
  "Default weak AI model to use.
This is the model to use for commit messages and chat history summarization.
When nil, Aider sets it automatically based on the default model."
  :type 'string)
1 个赞