sublime text 4版本必须≥4142,否则因底层lsp客户端逻辑缺陷无法稳定运行elixir-ls;elixir-ls是需手动安装的独立二进制,非插件;右下角必须显示“elixir”(即语法为source.elixir),且lsp配置中syntaxes路径须与elixirsyntax实际路径严格一致,构建命令禁用"shell":true。

Sublime Text 4 版本必须 ≥ 4142
低于这个版本的 Sublime Text 无法稳定运行 elixir-ls,不是配置问题,是底层 LSP 客户端逻辑缺陷导致的硬性限制。常见现象包括:client stopped unexpectedly、跳转失效、hover 不显示、项目根识别为 / 而非含 mix.exs 的目录。
验证方式:菜单栏 → Help → About Sublime Text,确认 Build 号 ≥ 4142。若为 4126 或更低,请先升级——别在旧版上调试 LSP 配置。
elixir-ls 是独立二进制,不是插件
elixir-ls 必须手动安装并确保终端可执行,SublimeLSP 只是客户端,不提供服务本身。装完 SublimeLSP 和 ElixirSyntax 后状态栏没 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)的绝对路径 - 验证 PATH:终端直接执行
language_server.sh --version必须成功;若报command not found,说明未加入系统 PATH,后续 LSP 设置中就得填全路径
语法识别必须是 source.elixir,不是 Plain Text
右下角显示 Plain Text 或 Elixir (EEx)?LSP、高亮、构建系统全部失效。这不是插件没装,是 Sublime 根本没把文件当 Elixir 处理。
- 按
Ctrl+Alt+Shift+P(Windows/Linux)或Cmd+Alt+Shift+P(macOS),看输出是否为source.elixir;如果不是,手动执行View → Syntax → Elixir → Elixir - 确认已安装
ElixirSyntax插件(不是旧版Elixir包,也不是Phoenix-Sublime),且Packages/ElixirSyntax/Elixir.sublime-syntax文件存在 - LSP 配置里的
syntaxes字段必须严格匹配该路径,例如:"syntaxes": ["Packages/ElixirSyntax/Elixir.sublime-syntax"],写错一个字符就失灵
构建系统禁用 "shell": true
用 "shell": true 运行 mix test 会导致输出流截断、堆栈不完整、错误卡在半截,根本没法定位问题。
- 构建命令必须用数组格式:
"cmd": ["mix", "test"],而非"cmd": "mix test" -
$project_path必须指向含mix.exs的目录;未打开项目时该变量为空,命令会直接失败 - 单文件运行可用
["elixir", "$file"],但对任何mix项目无效——它不加载依赖、不读config/、不启动应用上下文
最易被忽略的一点:LSP 配置中 command 路径、syntaxes 路径、当前文件实际激活的语法三者必须完全一致,缺一不可。哪怕 syntaxes 多了个斜杠,LSP 就静默退出。











