使用说明

项目简介

Skewed Emacs 是一个全面的 Emacs 配置方案,专注于为 Gnu Emacs 和 Linux/Unix bash 环境提供优化的开发体验。其内建的 MCP (Model Context Protocol) 服务器允许 AI 助手(如 Claude 等)与运行中的 Emacs 实例进行交互,扩展了 AI 在代码开发和文本处理方面的能力。该 MCP 后端允许 AI 助手发送 Emacs Lisp 表达式到 Emacs 执行,从而实现对 Emacs 内部资源和功能的访问与控制。

主要功能点

  • Emacs Lisp 代码执行: 允许 AI 助手在 Emacs 环境中执行任意 Emacs Lisp 代码。
  • 文件和缓冲区管理: AI 助手可以导航、管理 Emacs 中的文件和缓冲区,并进行编辑操作。
  • 扩展 Emacs 功能: 为 AI 助手提供访问 Emacs 丰富功能的能力,例如代码补全、重构、版本控制等(取决于具体实现和扩展)。
  • 作为 MCP 服务器: 遵循 Model Context Protocol,提供标准化的接口与 MCP 客户端通信。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/gornskew/skewed-emacs
    cd skewed-emacs
  2. 运行安装脚本:
    ./setup
    安装脚本会将配置文件链接到你的 home 目录。注意:安装脚本会备份并覆盖你现有的 Emacs 配置文件,请务必仔细阅读 'README.md' 中的警告信息,并考虑先使用 '--dry-run' 参数预览更改。

服务器配置

要将 MCP 客户端连接到 Skewed Emacs 提供的 MCP 服务器,你需要配置客户端以连接到 Emacs 进程。由于 MCP 服务器集成在 Emacs 内部,因此客户端需要通过 Emacs 提供的接口进行通信。

以下是一个 MCP 客户端(例如 'lisply-mcp' 客户端)的配置示例,用于连接到 Skewed Emacs 的 MCP 服务器。你需要将 Emacs 的启动命令配置到 MCP 客户端中。

{
  "serverName": "skewed-emacs-mcp",
  "command": "emacs",
  "args": [
    "-q", # 禁用 Emacs 初始化文件 (可选,如果你的 Emacs 初始化配置与 MCP 服务器运行冲突,可以尝试启用)
    "--load", # 加载指定的 Emacs Lisp 文件
    "~/.emacs.d/init.el", #  指向 Skewed Emacs 配置的 init.el 文件,确保加载 MCP 后端
    "--eval", # 执行 Emacs Lisp 代码
    "(lisply-backend-start)" # 启动 lisply-backend MCP 服务器 (假设启动函数为 lisply-backend-start,请参考实际文档)
  ],
  "transport": "stdio", #  假设 MCP 服务器使用 Stdio 进行通信,根据实际情况配置
  "protocol": "json-rpc" #  MCP 协议通常使用 JSON-RPC
  // ... 其他 MCP 客户端配置 ...
}

配置参数注释:

  • '"serverName"': MCP 服务器的名称,可以自定义。
  • '"command"': 启动 MCP 服务器的命令,这里是 'emacs',表示启动 Emacs 编辑器。
  • '"args"': 传递给 'emacs' 命令的参数列表。
    • '"-q"': 可选参数,禁用用户 Emacs 初始化文件,用于隔离环境,避免配置冲突。
    • '"--load"': 加载 Emacs Lisp 文件的参数。
    • '"~/.emacs.d/init.el"': 指向 Skewed Emacs 配置的 'init.el' 文件,确保加载 Skewed Emacs 的完整配置,包括 MCP 后端。 请根据实际安装路径调整。
    • '"--eval"': 执行 Emacs Lisp 代码的参数。
    • '"(lisply-backend-start)"': 关键参数,用于在 Emacs 启动后立即执行 'lisply-backend-start' 函数,该函数应该负责启动 Skewed Emacs 内置的 MCP 服务器。 请务必查阅 Skewed Emacs 的文档或源代码,确认实际的 MCP 服务器启动函数名称,并替换此处示例的 'lisply-backend-start'。
  • '"transport"': MCP 服务器使用的传输协议,示例中假设为 '"stdio"' (标准输入输出),根据 Skewed Emacs MCP 后端的实际实现配置。
  • '"protocol"': MCP 服务器使用的协议,通常为 '"json-rpc"'。

重要提示:

  • MCP 服务器启动函数: 上述配置中的 '"(lisply-backend-start)"' 仅为示例,实际启动函数名称可能不同。你需要查阅 'skewed-emacs' 仓库中 'dot-files/emacs.d/sideloaded/lisply-backend' 目录下的文档或代码,找到正确的 MCP 服务器启动函数,并替换配置中的示例。
  • 传输协议: '"transport": "stdio"' 仅为常见配置,Skwewed Emacs 的 MCP 后端可能支持其他传输协议(如 WebSocket 或 SSE),请根据实际情况调整。
  • Emacs 配置: 确保你的 Emacs 环境已正确安装 Skewed Emacs 配置,并且 MCP 后端已正确集成并启用。

基本使用方法

  1. 启动 Emacs: 确保使用配置了 Skewed Emacs 的 Emacs 环境。
  2. 启动 MCP 客户端: 根据 MCP 客户端的文档,配置连接信息,指向上述配置中定义的 Emacs 启动命令和参数。
  3. 建立连接: 启动 MCP 客户端,客户端会根据配置连接到 Emacs 实例中运行的 MCP 服务器。
  4. 使用 AI 助手: 连接成功后,你可以使用支持 MCP 协议的 AI 助手与 Emacs 进行交互,例如让 AI 助手执行 Emacs Lisp 命令,操作文件和缓冲区等。 具体功能取决于 Skewed Emacs MCP 后端实现的工具和资源。

请参考 'skewed-emacs' 仓库中 'dot-files/emacs.d/sideloaded/lisply-backend' 目录下的 'README.md' 文件,获取更详细的 MCP 后端使用说明和配置信息。

信息

分类

开发者工具