必须先让右下角显示“Elixir”,否则高亮、LSP、构建全部失效;需确认ElixirSyntax插件存在且路径正确(Packages/ElixirSyntax/Elixir.sublime-syntax)、Sublime Text≥4142,并手动部署elixir-ls二进制。

右下角没显示“Elixir”,后面所有功能都白配——高亮失效、LSP不启动、构建报错,全卡在这一步。
右下角不显示Elixir?语法包根本没生效
打开 .ex 或 .exs 文件,右下角显示 Plain Text 或 HTML,说明 Sublime 根本没加载 Elixir 语法定义。这不是插件装少了,而是路径或注册失败。
- 点击右下角语法名 → 从弹出菜单选
Elixir;若列表里没有,说明Packages/Elixir/Syntaxes/Elixir.sublime-syntax文件不存在 - 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)→ 输入Set Syntax: Elixir,前提是已安装 Elixir 插件且路径正确 - 用
Preferences → Browse Packages…进入目录,确认Elixir/文件夹存在,且含Syntaxes/Elixir.sublime-syntax - 别装
Phoenix-Sublime试图“替代” Elixir 插件——它不提供基础.ex支持,还可能把.ex错误识别为Elixir (EEx)
Sublime Text 版本低于 4142?LSP 启动必失败
Sublime Text 4(build ≥ 4142)是运行 SublimeLSP + elixir-ls 的硬性门槛。旧版对项目根识别、进程启动、文档链接支持极弱,elixir-ls 进程常启动即退出,日志只显示 client stopped unexpectedly。
- 菜单栏 →
Help → About Sublime Text,确认 build 号 ≥ 4142;如果是 4126 或更早,先升级,别折腾配置 - 低版本下即使填对
command路径,LSP-elixir设置也大概率灰掉,状态栏不显示 LSP 图标 - 旧版
SublimeLSP对mix.exs位置推断有硬伤,会把项目根设错,导致依赖无法加载、跳转全部失效
elixir-ls 不是插件,是必须手动部署的二进制
elixir-ls 是独立语言服务器程序,不是 Sublime 插件。装完 SublimeLSP 和 ElixirSyntax 就以为齐活了,结果右键没有 Go to Definition,问题就出在这儿。
- 推荐方式(需
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)的绝对路径 - 验证是否可用:在终端直接运行该命令,看到
Starting language server即表示可执行;若报command not found,说明没加到系统PATH,LSP配置中就得写全路径
构建系统和 LSP 配置容易踩的坑
构建命令禁用 "shell": true,须用原生数组格式并确保 $project_path 指向含 mix.exs 的目录;LSP 配置中 syntaxes 路径必须与 ElixirSyntax 插件实际路径一致。
- 构建系统示例(保存为
Elixir.sublime-build):{ "cmd": ["elixir", "$file"], "file_patterns": ["*.ex"], "selector": "source.elixir", "working_dir": "$file_path" } -
LSP设置中syntaxes必须匹配你本地插件路径,常见为Packages/ElixirSyntax/Elixir.sublime-syntax,不是Packages/Elixir/Syntaxes/Elixir.sublime-syntax - 运行
mix test前,务必用File → Open Folder打开整个项目,确保状态栏显示Project: your_app_name,否则working_dir会错位 - 高并发场景下,
elixir-ls默认单进程,若频繁触发 hover 或跳转,建议在LSP用户设置中加"initializationOptions": {"enableTestCodeLens": false}减轻负载
真正卡住人的从来不是配置项数量,而是右下角那个小小的“Elixir”字样——它没出现,后续所有高亮、跳转、格式化、测试集成,全是空中楼阁。


















