sublime text 4(build ≥ 4142)是运行elixir-ls的唯一可行起点,低于该版本会导致lsp启动失败、项目根识别错误及跳转失效;elixir-ls为需手动部署的独立二进制服务,非插件,且右下角必须显示“elixir”语法并验证language_server.sh可执行,否则高亮、补全、构建等功能全部失效。

Sublime Text 4(build ≥ 4142)是唯一可行起点,低于该版本的 LSP 启动、项目根识别、文档跳转全部不可靠;elixir-ls 不是插件,是必须手动部署的独立二进制服务,装完 SublimeLSP 和语法包 ≠ 能用。
确认 Sublime Text 版本是否满足 elixir-ls 最低要求
旧版 Sublime(如 build 4126 或更早)会直接导致 elixir-ls 进程启动后秒退,日志只显示 client stopped unexpectedly,这不是配置错误,是内核兼容性硬伤。
- 打开 Sublime → Help → About Sublime Text,确认 build 号 ≥ 4142
- 若不达标,先卸载重装官方最新版(2026 年 7 月最新为 build 4165),别在旧版上折腾 LSP 设置
- 升级后重启,再检查右下角是否能手动切换为 Elixir 语法——这是后续所有功能的前提
让 .ex 文件正确识别为 Elixir 语法
右下角显示 Plain Text 或 Elixir (EEx) 就代表语法未激活,elixir-ls 根本不会触发,高亮、补全、跳转全失效。
- 按
Ctrl+Shift+P→ 输入Set Syntax: Elixir,选中执行(前提是已安装ElixirSyntax插件) - 若菜单里没有
Elixir,说明Packages/ElixirSyntax/Elixir.sublime-syntax文件不存在,需重装插件 - 别装
Phoenix-Sublime:它不提供基础.ex支持,反而可能把普通模块误判为 EEx 模板 - 验证当前语法:按
Ctrl+Alt+Shift+P(Windows/Linux)或Cmd+Alt+Shift+P(macOS),输出应为source.elixir
手动部署 elixir-ls 并配置 LSP-elixir 服务路径
elixir-ls 是独立命令行程序,不是 Sublime 插件。SublimeLSP 只是客户端,没它,LSP 功能永远灰色。
- 推荐安装方式(需 Elixir ≥ 1.12):
mix archive.install github elixir-lsp/elixir-ls,成功后运行language_server.sh --version(macOS/Linux)或language_server.bat --version(Windows)应输出类似ElixirLS v0.116.0 - 手动下载:从 GitHub Releases 下载最新
elixir-ls-*.zip,解压后记下release/language_server.sh(或.bat)的**绝对路径** - 在 Preferences → Package Settings → LSP → Servers → LSP-elixir 的用户设置中填入:
"command": ["/absolute/path/to/language_server.sh"] - 关键点:
syntaxes字段必须与你本地ElixirSyntax实际路径一致,常见为["Packages/ElixirSyntax/Elixir.sublime-syntax"],写错就匹配不上
构建系统必须禁用 "shell": true,且 $project_path 要指向 mix.exs 目录
用 "shell": true 启动 mix 命令会导致输出流中断,错误堆栈卡在半截,根本看不到哪一行报错。
- 构建命令必须写成数组格式:
"cmd": ["mix", "test"],不能写"cmd": "mix test" -
$project_path必须指向含mix.exs的目录;没开项目时该变量为空,命令直接失败 - 单文件运行可用
["elixir", "$file"],但对任何mix项目都无效——它不加载依赖、不读config/、不启动应用上下文 - Phoenix 项目同理,不要试图用
mix run -e替代完整mix phx.server启动流程
最常被忽略的其实是语法激活和 elixir-ls 路径验证这两步:右下角没显示 Elixir,所有 LSP 功能都是空转;终端里连 language_server.sh --version 都执行失败,Sublime 里的配置再全也没用。











