Emacs 的 Language Server Protocol 客户端,为 Emacs 提供类 IDE 的补全、诊断与代码导航。
joaotavora/eglot
Eglot 是内置于 Emacs 的 LSP 客户端,用极少配置把编辑缓冲区连接到各类语言服务器。
- Star
- 2,570
- Fork
- 210
- 未关闭 Issue
- 55
- 最近提交
- 8天前
这是什么?
Eglot(Emacs Polyglot)是用于 Emacs 的 Language Server Protocol 客户端。在源码文件中执行 M-x eglot,即可为当前主模式启动合适的语言服务器,无法自动判断时会提示输入启动命令。随后它会同步项目内已打开的文件,并把服务器提供的功能接入 Emacs 自身的工具链。
Eglot 直接使用 Emacs 内置设施,而非额外框架:Flymake 显示诊断信息,ElDoc 显示悬停说明和函数签名,Xref 负责跳转定义和查找引用。补全通过 completion-at-point 工作,开启 yasnippet 后还支持模板式代码片段补全。代码操作、重命名以及服务器发起的编辑(默认需用户确认)也都支持。
Eglot 自 Emacs 29 起成为 Emacs 核心组件,本仓库镜像了上游代码,方便在旧版 Emacs 上通过 GNU ELPA 安装使用。实际开发在 Emacs 项目中进行,补丁通过邮件提交。
核心功能
- 01通过 M-x eglot 启动语言服务器,可能时自动推断服务器程序。
- 02借助 Flymake 显示诊断信息,借助 ElDoc 显示悬停文档。
- 03通过 completion-at-point 提供补全,可选配合 yasnippet 代码片段。
- 04支持重命名、代码操作,以及基于 Xref 的定义跳转和引用查找。
- 05内置大量预配置服务器,如 clangd、gopls、rust-analyzer 和 pyright。
适用场景
- 在 Emacs 中编写 C、C++、Go 或 Rust 代码,并使用完整的语言服务器功能。
- 在 Python 或 TypeScript 项目中,于 Emacs 内获得诊断和补全。
- 不安装较重的框架,就在 Emacs 中体验 LSP 支持。
快速上手
- 1
在 Emacs 中从 GNU ELPA 安装稳定版
M-x package-install RET eglot RET - 2
打开任意源代码文件并启动 Eglot
M-x eglot
使用前须知
- 它只能在 Emacs 内运行,无法在其他编辑器中使用。
- 本仓库已不再是开发主线,拉取请求不会被合并。
- 采用 GPL-3.0 许可证,属于 copyleft 许可。
标签
常见问题
- eglot 是什么?
- Eglot 是内置于 Emacs 的 LSP 客户端,用极少配置把编辑缓冲区连接到各类语言服务器。 Eglot(Emacs Polyglot)是用于 Emacs 的 Language Server Protocol 客户端。在源码文件中执行 M-x eglot,即可为当前主模式启动合适的语言服务器,无法自动判断时会提示输入启动命令。随后它会同步项目内已打开的文件,并把服务器提供的功能接入 Emacs 自身的工具链。
- eglot 可以免费使用吗?用的什么许可证?
- eglot 以 GPL-3.0 许可证开源。用于商业产品前,请先确认许可证条款。
- eglot 还在维护吗?
- 活跃维护中。eglot 最近一次提交是在 2026年10月30日。
- eglot 适合用来做什么?
- 在 Emacs 中编写 C、C++、Go 或 Rust 代码,并使用完整的语言服务器功能。 在 Python 或 TypeScript 项目中,于 Emacs 内获得诊断和补全。 不安装较重的框架,就在 Emacs 中体验 LSP 支持。
- eglot 怎么安装和运行?
- 在 Emacs 中从 GNU ELPA 安装稳定版: M-x package-install RET eglot RET 打开任意源代码文件并启动 Eglot: M-x eglot
- 在哪里获取 eglot?
- 源代码和安装说明在 GitHub 上:https://github.com/joaotavora/eglot
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
面向 GNU Emacs 的模块化缓冲区内补全框架,在输入时显示代码与文本补全候选。
为 Neovim 内置 LSP 客户端提供的一组开箱即用的语言服务器配置。
用 Rust 编写的快速 Python 类型检查器与语言服务器,提供代码导航、自动补全等 IDE 功能。
纯 Lua 编写的 Neovim 插件,替代 copilot.vim,提供 GitHub Copilot 行内补全、建议面板和集成 API。
一款 Neovim 插件,结合 Copilot LSP 的下一步编辑建议与内置终端,用于运行各类 AI 命令行工具。