必须先让右下角显示“elixir”,否则高亮、lsp、构建全部失效;若显示plain text,说明语法包未生效,需检查packages/elixir/syntaxes/elixir.sublime-syntax是否存在或手动设置语法。

右下角没显示 Elixir,后面所有功能都白配——高亮失效、LSP 不启动、构建报错,全卡在这一步。
右下角显示 Plain Text?说明语法包根本没生效
打开 .ex 或 .exs 文件,右下角显示 Plain Text 或 HTML,代表 Sublime 没加载任何 Elixir 语法定义。这不是插件装少了,而是路径或注册失败。
- 点击右下角语法名(如
Plain Text)→ 从弹出菜单选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配置中就得写全路径
构建系统报 elixir: command not found?PATH 没通
构建系统本质是调用 shell 执行命令,如果 elixir 命令在终端能跑,但在 Sublime 里报错,90% 是 PATH 环境变量未被 Sublime 继承。
- 检查终端中
which elixir输出路径,确保该路径已加入系统PATH - macOS/Linux 用户注意:GUI 应用(如 Sublime)通常不读取
~/.zshrc或~/.bash_profile,需在/etc/paths或通过 LaunchAgents 注入环境变量 - Windows 用户确认
elixir所在目录已添加至系统环境变量Path,重启 Sublime 生效 - 构建配置中避免用
shell: true除非必要——它绕过 PATH 查找逻辑,反而容易掩盖真实问题
最容易被忽略的是:Sublime 启动时加载的环境变量和你在终端里看到的往往不一致,尤其是 macOS 上的 GUI 应用。别只信终端能跑,得让 Sublime 自己也“看见” elixir 和 language_server.sh。











