能,需Sublime Text 4(build 4142+)配合SublimeLSP插件与手动安装的elixir-ls语言服务器,并正确配置绝对路径、语法范围及项目根目录。

Sublime Text 能不能用 Elixir-LSP?得看版本和插件配合
Sublime Text 本身不原生支持 LSP(Language Server Protocol),必须通过第三方插件桥接。目前唯一稳定可用的方案是 SublimeLSP + elixir-ls,但前提是你的 Sublime Text 是 build 4142 或更高版本(即 Sublime Text 4)。低于这个版本的 SublimeLSP 对 Elixir 的项目根识别、任务启动、文档链接等支持极弱,甚至无法加载 elixir-ls 进程。
安装 elixir-ls 服务二进制文件(不是插件)
elixir-ls 是一个独立的服务器程序,不是 Sublime 插件。你必须先在系统中编译或下载它的可执行文件,并确保它能被 SublimeLSP 找到。
- 推荐方式:用
mix archive.install github elixir-lsp/elixir-ls(需 Elixir ≥ 1.12,且已配置好MIX_ENV=prod) - 手动方式:从 GitHub Releases 下载对应平台的
elixir-ls-*.zip,解压后把release/language_server.sh(macOS/Linux)或language_server.bat(Windows)路径记下来 - 验证是否可用:
./language_server.sh --version
应输出类似ElixirLS v0.116.0
配置 SublimeLSP 让它认识 elixir-ls
打开 Preferences → Package Settings → LSP → Settings,在右侧用户设置中添加 elixir 配置块。关键点不是“开启高亮”,而是让 LSP 正确启动并响应:
{
"clients": {
"elixir": {
"enabled": true,
"command": [
"/path/to/your/language_server.sh"
],
"scopes": ["source.elixir"],
"syntaxes": [
"Packages/Elixir/Syntaxes/Elixir.sublime-syntax",
"Packages/Elixir/Syntaxes/Elixir (EEx).sublime-syntax"
],
"initializationOptions": {
"env": {
"MIX_ENV": "test"
}
},
"settings": {
"elixirLS": {
"dialyzerEnabled": false,
"fetchDeps": true
}
}
}
}
}
-
command必须是绝对路径,不能用~或环境变量(Sublime 不展开) - 如果用的是 Windows,请把
language_server.bat加入command,且路径用正斜杠或双反斜杠 -
syntaxes必须和你当前安装的 Elixir 语法包路径完全一致;可通过View → Syntax → Open all with current extension as…查看实际路径 - 首次启动时,
elixir-ls会自动 fetch deps 并构建,耗时可能达 1–3 分钟,不要反复重启 Sublime
高亮失效、跳转失败、没有补全?先检查这三件事
90% 的“没反应”问题其实和 LSP 无关,而是基础链路断了:
- 确认你打开的是整个 Mix 项目根目录(即含
mix.exs的文件夹),不是子目录或单个.ex文件 ——SublimeLSP默认只在项目根下激活elixir客户端 - 打开
Tools → Developer → Show Console,输入view.settings().get("syntax"),返回值必须是上面syntaxes列表里的某一项;否则高亮和 LSP 都不会触发 - 运行
ps aux | grep elixir_ls(macOS/Linux)或任务管理器(Windows),确认elixir-ls进程是否真在运行;若没有,说明command路径错、权限不足、或mix命令不可见(Sublime 的 PATH 和终端不同,建议用完整路径如/usr/local/bin/mix)
真正麻烦的从来不是配参数,而是 Sublime 启动时读不到你的 shell 环境变量,又不报错 —— 这点比 VS Code 或 Vim 隐蔽得多。










