Sublime Text 4(build ≥ 4142)是运行SublimeLSP+elixir-ls的最低要求,低于该版本无法正确识别项目根、启动进程或支持文档链接;右下角必须显示“Elixir”,否则高亮、LSP和构建系统全部失效;elixir-ls是需手动部署的独立二进制服务,非插件;构建命令禁用"shell": true,须用原生数组格式并确保$project_path指向含mix.exs的目录。

Sublime Text 4(build ≥ 4142)才能稳定运行 SublimeLSP + elixir-ls,低于这个版本的 LSP 客户端对项目根识别、进程启动、文档链接支持极弱,基本无法启用跳转或 hover 提示。
右下角显示 Plain Text?语法包根本没生效
所有后续功能——高亮、LSP、构建系统——都依赖右下角显示 Elixir。如果打开 .ex 文件却看到 Plain Text 或 HTML,说明语法未注册,不是插件装少了,而是根本没被 Sublime 识别。
- 点击右下角语法名 → 从菜单选
Elixir;若列表里没有,说明Packages/Elixir/Syntaxes/Elixir.sublime-syntax文件不存在 - 用
Preferences → Browse Packages…进入目录,确认Elixir/文件夹存在且含Syntaxes/子目录 - 别装
Phoenix-Sublime试图“替代” Elixir 插件——它不提供基础.ex支持,反而可能把.ex错误识别为Elixir (EEx) - 手动触发:按
Ctrl+Shift+P→ 输入Set Syntax: Elixir,前提是插件已安装且路径正确
elixir-ls 不是插件,是必须手动部署的二进制服务
SublimeLSP 只是客户端,elixir-ls 是独立语言服务器程序,不下载、不编译、不配置路径,LSP 功能就永远是灰色的。
- 推荐方式:
mix archive.install github elixir-lsp/elixir-ls(需 Elixir ≥ 1.12,且当前MIX_ENV=prod) - 手动方式:从 GitHub Releases 下载对应平台 zip,解压后记下
language_server.sh(macOS/Linux)或language_server.bat(Windows)的**绝对路径** - 在
Preferences → Package Settings → LSP → Servers → LSP-elixir的用户设置中填入:"command": ["/path/to/language_server.sh"] - 验证是否可用:终端直接运行该命令,看到
Starting language server...即表示可执行
构建系统写 "shell": true 就废了 mix 输出
用 "shell": true 启动 mix test 或 mix run,Sublime 会丢掉实时输出流,错误堆栈卡在半截,日志断掉就看不到哪一行报错。
- 构建命令必须用原生数组写法:
"cmd": ["mix", "test"],不是"cmd": "mix test" -
$project_path必须指向含mix.exs的目录;没开项目时该变量为空,命令直接失败 - 单文件运行用
["elixir", "$file"]可以,但对 Phoenix 或任何 mix 项目完全无效——它不加载依赖、不读config/、不启动应用上下文 -
file_regex推荐用:"file_regex": "^(.*):([0-9]+):([0-9]+): (.*)$",匹配标准elixirc报错格式
最容易被忽略的是:LSP 功能是否启用,和你装了多少插件无关,只取决于三件事——右下角是不是 Elixir、elixir-ls 二进制能否被找到并启动、SublimeLSP 版本够不够新。少一个,跳转就点不动,hover 就没内容,补全就只靠猜。

















