必须先让右下角显示“elixir”,否则高亮、lsp、构建全部失效;若显示plain text,说明语法包未加载,需确认elixirsyntax插件存在且路径为packages/elixirsyntax/syntaxes/elixir.sublime-syntax,sublime text版本≥4142,并手动部署elixir-ls二进制。

右下角没显示“Elixir”就别往下配
所有功能——高亮、LSP、构建系统——都卡在这一步。如果打开 .ex 文件,右下角显示的是 Plain Text 或 HTML,说明 Sublime 根本没加载 Elixir 语法定义,后续配置全是白搭。
点击右下角语法名 → 从菜单选 Elixir;若列表里没有,说明 Packages/ElixirSyntax/Syntaxes/Elixir.sublime-syntax 文件不存在(注意路径,不是旧版 Packages/Elixir/...)。
- 用
Preferences → Browse Packages…进入目录,确认ElixirSyntax/文件夹存在,且含Syntaxes/Elixir.sublime-syntax - 别装
Phoenix-Sublime:它不提供基础.ex支持,还可能把.ex错误识别为Elixir (EEx) - 快捷方式:按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS)→ 输入Set Syntax: Elixir,前提是插件已装且路径正确
Sublime Text 版本低于 4142?LSP 必挂
Sublime Text 4(build ≥ 4142)是硬性门槛。旧版对项目根识别、进程启动、文档链接支持极弱,elixir-ls 启动后常立刻退出,日志只显示 client stopped unexpectedly。
菜单栏 → Help → About Sublime Text,看到类似 Build 4142 或更高才算过关。如果是 Build 4126 或更早,先升级,别折腾 LSP 配置。
- 低版本下即使填对
command路径,LSP-elixir 设置也大概率灰掉,状态栏不显示 LSP 图标 - 旧版 SublimeLSP 对
mix.exs位置推断有硬伤,会把项目根设错,导致依赖无法加载、跳转全部失效
elixir-ls 不是插件,是必须手动部署的二进制
elixir-ls 是独立语言服务器程序,不是 Sublime 插件。装完 SublimeLSP 和 ElixirSyntax 就以为齐活了,结果右键没有 Go to Definition,问题就出在这儿。
验证是否可用:在终端直接运行 language_server.sh --version(macOS/Linux)或 language_server.bat --version(Windows),应输出类似 ElixirLS v0.116.0。
- 推荐方式(需 Elixir ≥ 1.12):
mix archive.install github elixir-lsp/elixir-ls - 手动下载:去 GitHub Releases 找最新
elixir-ls-*.zip,解压后记下release/language_server.sh(或.bat)的绝对路径 - 如果终端报
command not found,说明没加到系统PATH,LSP 配置里就得写全路径
构建系统禁用 "shell": true
用 "shell": true 启动 mix test 或 mix run,Sublime 会丢掉实时输出流,错误堆栈卡在半截,日志断掉就看不到哪一行报错。
构建命令必须用原生数组写法:"cmd": ["mix", "test"],不是 "cmd": "mix test"。
-
$project_path必须指向含mix.exs的目录;没开项目时该变量为空,命令直接失败 - 单文件运行可用
["elixir", "$file"],但对 Phoenix 或任何mix项目完全无效——它不加载依赖、不读config/、不启动应用上下文 - 测试单个文件时,务必设
"working_dir": "$project_path",否则$file路径在 mix 环境中无效
最容易被忽略的是:LSP 配置里的 syntaxes 路径必须和你本地 ElixirSyntax 插件实际安装路径严格一致,差一个字母或斜杠都会让 LSP 完全静默。别复制网上的示例就完事,打开 Packages/ElixirSyntax/Syntaxes/Elixir.sublime-syntax 确认真实路径再填。











