Repolode
joaotavora

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. 1

    在 Emacs 中从 GNU ELPA 安装稳定版

    M-x package-install RET eglot RET
  2. 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 数据每日更新。

相关项目