lsp-bridge安装与配置指南
1. 项目基础介绍
lsp-bridge 是一个为 Emacs 编辑器实现的最快的 LSP (Language Server Protocol) 客户端。它的设计理念是插拔式使用,通过多线程技术节省时间和精力,因为时间就是金钱。
主要编程语言:Elisp (Emacs Lisp) 和 Python。
2. 项目使用的关键技术和框架
- 多线程技术:lsp-bridge 使用多线程来处理 LSP 请求和数据解析,避免因延迟或大量数据触发垃圾回收导致 Emacs 卡顿。
- 远程补全支持:内置了对远程服务器代码补全的支持,支持多种登录方式,如密码和公钥,支持 tramp 协议和跳转服务器,也支持 Docker。
- 即插即用:安装后即可使用,无需额外配置,无需手动设置前端补全、后端补全或多后端集成配置,代码补全甚至在 org-mode 的 src 块中也有效。
- 多服务器融合:通过一个简单的 JSON 文件,就能将多个 LSP 服务器组合成一个文件,提供例如 Python 的代码补全、诊断和格式化等功能。
- 灵活的自定义:通过 JSON 文件定制 LSP 服务器选项非常简单,不同项目只需几行规则即可有不同的 JSON 配置。
3. 安装和配置准备工作
准备工作
- 安装 Emacs 28 或更高版本。
- 确保系统中已安装 Python 3。
- 安装 Python 依赖项:epc, orjson, sexpdata, six, setuptools, paramiko, rapidfuzz, watchdog, packaging(orjson 是可选的,基于 Rust,提供更快的 JSON 解析性能)。
- 安装 Elisp 依赖项:markdown-mode, yasnippet。
安装步骤
-
克隆项目仓库到本地:
git clone https://github.com/manateelazycat/lsp-bridge.git -
将以下代码添加到你的 Emacs 配置文件
~/.emacs中:(add-to-list 'load-path "<path-to-lsp-bridge>") (require 'yasnippet) (yas-global-mode 1) (require 'lsp-bridge) (global-lsp-bridge-mode)请将
<path-to-lsp-bridge>替换为克隆仓库后的实际路径。 -
如果你使用 straight.el 进行安装,可以使用以下配置:
(use-package lsp-bridge :straight '(lsp-bridge :type git :host github :repo "manateelazycat/lsp-bridge" :files (:defaults "*.el" "*.py" "acm" "core" "langserver" "multiserver" "resources") :build (:not compile)) :init (global-lsp-bridge-mode)) -
如果使用 doom-emacs,需要在
packages.el添加以下配置:(when (package! lsp-bridge :recipe (:host github :repo "manateelazycat/lsp-bridge" :branch "master" :files ("*.el" "*.py" "acm" "core" "langserver" "multiserver" "resources") :build '(:not compile))) (package! markdown-mode) (package! yasnippet))并在
config.el中添加:(use-package! lsp-bridge :config (global-lsp-bridge-mode))然后执行
doom sync来安装。 -
安装完成后,请确保禁用其他补全插件,如 lsp-mode, eglot, company, corfu 等。lsp-bridge 提供了一个从补全后端到补全前端再到多后端集成的完整解决方案。
注意:安装后不要对 lsp-bridge 进行字节编译或原生编译,因为这会导致 API 不一致,且升级后需要重新编译。lsp-bridge 设计为多线程,无需编译即可加速。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



