AI个人学习
和实操指南
讯飞绘镜

Emigo:在Emacs中使用AI完成复杂编程任务的助手

综合介绍

Emigo 是一个专为 Emacs 设计的开源 AI 编程助手,由 MatthewZMD 在 GitHub 上开发。它通过集成大型语言模型(LLM),帮助程序员在 Emacs 中完成代码分析、生成、修改等任务。Emigo 的核心特点是“Agentic AI”(代理型 AI),不仅能生成文本,还能通过工具与项目互动,比如读取文件、写入代码或执行命令。它受到 Aider 和 Cline 等工具的启发,是 Aidermacs 的后续项目。目前,Emigo 处于 Beta 测试阶段,功能还在完善中,适合开发者试用和反馈。

Emigo:在Emacs中使用AI完成复杂编程任务的助手-1


 

功能列表

  • 代理型工具使用:AI 根据任务需求选择并执行工具,比如读写文件或运行命令。
  • 无缝集成 Emacs:操作界面和快捷键与 Emacs 原生体验一致。
  • 支持多种 AI 模型:通过 LiteLLM 连接 OpenRouter、Deepseek 等模型,用户可自由选择。
  • 上下文管理:自动记录对话历史和项目文件,确保会话连贯。
  • 文件上下文添加:通过 "@" 符号快速将文件加入 AI 分析范围。
  • 代码补丁生成与显示:AI 返回的代码更改以高亮形式展示,方便查看。

 

使用帮助

Emigo 是为 Emacs 用户打造的 AI 助手。以下是详细的安装和使用方法,确保你能快速上手。

安装流程

  1. 检查环境要求
    • 需要 Emacs 28 或更高版本。可以在 https://www.gnu.org/software/emacs/ 下载安装。
    • 需要 Python 3.x,已安装的用户可跳过,未安装的可从 https://www.python.org/ 获取。
  2. 下载 Emigo
    在终端运行以下命令,将 Emigo 克隆到 Emacs 配置目录:
git clone https://github.com/MatthewZMD/emigo.git ~/.emacs.d/emigo
  1. 安装 Python 依赖
    进入 Emigo 目录,运行:
cd ~/.emacs.d/emigo
pip install -r requirements.txt

这会安装必要的 Python 库,比如 LiteLLM。

  1. 配置 Emacs
    打开 Emacs 配置文件(通常是 ~/.emacs.d/init.el),添加以下代码:
(use-package emigo
:straight (:host github :repo "MatthewZMD/emigo")
:config
(emigo-enable) ;; 自动启动后台进程
:custom
(emigo-model "openrouter/deepseek/deepseek-chat-v3-0324") ;; 设置默认模型
(emigo-base-url "https://openrouter.ai/api/v1") ;; 设置 API 地址
(emigo-api-key (emigo-read-file-content "~/.config/openrouter/key.txt"))) ;; 加载 API 密钥
  • 配置说明
    • emigo-model:选择 AI 模型,推荐 OpenRouter 的 Deepseek。
    • emigo-base-url:填写 API 服务地址。
    • emigo-api-key:从 OpenRouter(https://openrouter.ai)获取密钥,保存到指定路径。
  1. 验证安装
    保存配置后,重启 Emacs。输入 M-x emigo,如果出现新缓冲区,说明安装成功。

如何使用

Emigo 的操作主要在 Emacs 中进行,结合快捷键和交互窗口。

启动 Emigo

  • 在项目目录下输入 M-x emigo,回车后打开专用缓冲区。
  • 如果在 Git 仓库中,Emigo 会以仓库根目录作为会话路径。想用当前目录,可输入 C-u M-x emigo

输入提示

  • 在缓冲区输入你的需求,比如:
请优化 @src/main.py 中的排序函数
  • Emigo 会自动找到 src/main.py 并发送给 AI 处理。

添加文件到上下文

  • 用 "@" 符号提及文件,比如 @src/utils.py,Emigo 会将其加入上下文。
  • 查看上下文文件:按 C-c C-l(运行 emigo-list-context-files)。
  • 删除文件:按 C-c C-f(运行 emigo-remove-file-from-context)。

与 AI 交互

  • 输入任务后,AI 会分析并返回结果。比如:
请帮我调试 @src/main.c 中的内存泄漏
  • AI 返回的补丁会以高亮形式显示,如:
- free(ptr);
+ if (ptr) free(ptr);

工具使用流程

  • Emigo 的代理型功能通过工具实现。AI 会根据任务选择工具,比如:
  • read_file:读取文件内容。
  • write_to_file:写入文件。
  • execute_command:运行命令。
  • AI 可能提示:
我需要运行 gcc -o test main.c,同意吗?
  • 按 y 确认,工具执行后结果会反馈到对话中。

会话管理

  • 检查上下文:用 C-c C-l 查看当前文件列表。
  • 重启会话:关闭缓冲区,重新运行 M-x emigo

开发状态提醒

  • Emigo 目前是 Beta 版,可能存在 API 变动、功能不稳定或文档不全的情况。建议仅用于测试,并通过 GitHub 提交问题反馈。

 

应用场景

  1. 代码调试
    在 C 项目中发现崩溃,输入“检查 @main.c 的错误”,AI 会分析并建议修复。
  2. 文件重构
    输入“重构 @src/utils.py 的函数”,Emigo 会生成优化后的代码并显示补丁。
  3. 命令执行
    在项目中输入“编译 @src/main.c”,AI 会选择 execute_command 工具运行 gcc

 

QA

  1. Emigo 支持哪些模型?
    通过 LiteLLM 支持多种模型,如 OpenRouter 的 Deepseek、Anthropic 的 Claude 等,只需在配置中指定模型名称和 API。
  2. 为什么提示无响应?
    可能是 API 密钥无效或网络问题。检查密钥文件路径和网络连接,确保 emigo-base-url 可访问。
  3. 如何更新 Emigo?
    在 ~/.emacs.d/emigo 目录运行 git pull,然后重启 Emacs。
未经允许不得转载:首席AI分享圈 » Emigo:在Emacs中使用AI完成复杂编程任务的助手
zh_CN简体中文