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

写一个 CI吧,可以自动探测一些问题,类似

好!

Aidermacs 要求 project-root 这个函数,而它是28才有的,我看compat没有实现它,有点苦恼,现在只能depend在28了。

这个简单,可以实现一个简易版的作为fallback,比如让用户自己输入root路径

或者用vc包里面的函数,或者依赖projectile,方式很多

哈哈哈,我还是用vc吧,写简易版太折腾了,不想重复造轮子。

我研究了一下,决定保留melpazoid就够了。

project-root已经用vc-git代替了,确实没必要为了一个(project-root)而要求更新俩个大版本。

总之,现在Aidermacs只需要emacs 26就可以用啦!

1 个赞

对, 还可以定义一个函数的变量, 默认为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 的功夫就能够做得很好。稍微长一点的代码和上下文,指令遵循能力表现就不行了,输出的格式就会反复的解析失败。