sublime怎么配置elixir开发环境_sublime安装elixir-ls插件高亮设置【方案】

发布时间 - 2025-12-31 00:00:00    点击率:
能,需Sublime Text 4(build 4142+)配合SublimeLSP插件与手动安装的elixir-ls语言服务器,并正确配置绝对路径、语法范围及项目根目录。

Sublime Text 能不能用 Elixir-LSP?得看版本和插件配合

Sublime Text 本身不原生支持 LSP(Language Server Protocol),必须通过第三方插件桥接。目前唯一稳定可用的方案是 SublimeLSP + elixir-ls,但前提是你的 Sublime Text 是 build 4142 或更高版本(即 Sublime Text 4)。低于这个版本的 SublimeLSP 对 Elixir 的项目根识别、任务启动、文档链接等支持极弱,甚至无法加载 elixir-ls 进程。

安装 elixir-ls 服务二进制文件(不是插件)

elixir-ls 是一个独立的服务器程序,不是 Sublime 插件。你必须先在系统中编译或下载它的可执行文件,并确保它能被 SublimeLSP 找到。

  • 推荐方式:用 mix archive.install github elixir-lsp/elixir-ls(需 Elixir ≥ 1.12,且已配置好 MIX_ENV=prod
  • 手动方式:从 GitHub Releases 下载对应平台的 elixir-ls-*.zip,解压后把 release/language_server.sh(macOS/Linux)或 language_server.bat(Windows)路径记下来
  • 验证是否可用:
    ./language_server.sh --version
    应输出类似 ElixirLS v0.116.0

配置 SublimeLSP 让它认识 elixir-ls

打开 Preferences → Package Settings → LSP → Settings,在右侧用户设置中添加 elixir 配置块。关键点不是“开启高亮”,而是让 LSP 正确启动并响应:

{
  "clients": {
    "elixir": {
      "enabled": true,
      "command": [
        "/path/to/your/language_server.sh"
      ],
      "scopes": ["source.elixir"],
      "syntaxes": [
        "Packages/Elixir/Syntaxes/Elixir.sublime-syntax",
        "Packages/Elixir/Syntaxes/Elixir (EEx).sublime-syntax"
      ],
      "initializationOptions": {
        "env": {
          "MIX_ENV": "test"
        }
      },
      "settings": {
        "elixirLS": {
          "dialyzerEnabled": false,
          "fetchDeps": true
        }
      }
    }
  }
}
  • command 必须是绝对路径,不能用 ~ 或环境变量(Sublime 不展开)
  • 如果用的是 Windows,请把 language_server.bat 加入 command,且路径用正斜杠或双反斜杠
  • syntaxes 必须和你当前安装的 Elixir 语法包路径完全一致;可通过 View → Syntax → Open all with current extension as… 查看实际路径
  • 首次启动时,elixir-ls 会自动 fetch deps 并构建,耗时可能达 1–3 分钟,不要反复重启 Sublime

高亮失效、跳转失败、没有补全?先检查这三件事

90% 的“没反应”问题其实和 LSP 无关,而是基础链路断了:

  • 确认你打开的是整个 Mix 项目根目录(即含 mix.exs 的文件夹),不是子目录或单个 .ex 文件 —— SublimeLSP 默认只在项目根下激活 elixir 客户端
  • 打开 Tools → Developer → Show Console,输入 view.settings().get("syntax"),返回值必须是上面 syntaxes 列表里的某一项;否则高亮和 LSP 都不会触发
  • 运行 ps aux | grep elixir_ls(macOS/Linux)或任务管理器(Windows),确认 elixir-ls 进程是否真在运行;若没有,说明 command 路径错、权限不足、或 mix 命令不可见(Sublime 的 PATH 和终端不同,建议用完整路径如 /usr/local/bin/mix

真正麻烦的从来不是配参数,而是 Sublime 启动时读不到你的 shell 环境变量,又不报错 —— 这点比 VS Code 或 Vim 隐蔽得多。


# linux  # sublime  # git  # windows  # github  # mac  # macos  # 环境变量  # 解压  # win  # console  # vim  # sublime text  # 的是  # 启动时  # 是一个  # 首次  # 和你  # 得多  # 请把  # 只在  # 又不  # 跳转 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在IIS服务器上快速部署高效网站?  JS去除重复并统计数量的实现方法  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  ,南京靠谱的征婚网站?  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  zabbix利用python脚本发送报警邮件的方法  如何快速查询网站的真实建站时间?  如何自定义建站之星网站的导航菜单样式?  如何为不同团队 ID 动态生成多个非值班状态按钮  制作公司内部网站有哪些,内网如何建网站?  利用 Google AI 进行 YouTube 视频 SEO 描述优化  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  手机网站制作与建设方案,手机网站如何建设?  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Laravel如何保护应用免受CSRF攻击?(原理和示例)  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  网站制作软件有哪些,制图软件有哪些?  JavaScript如何实现类型判断_typeof和instanceof有什么区别  如何挑选最适合建站的高性能VPS主机?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  如何快速使用云服务器搭建个人网站?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何安全更换建站之星模板并保留数据?  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  linux top下的 minerd 木马清除方法  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  Python文本处理实践_日志清洗解析【指导】  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  佛山网站制作系统,佛山企业变更地址网上办理步骤?  企业网站制作这些问题要关注  如何快速搭建支持数据库操作的智能建站平台?  深圳网站制作的公司有哪些,dido官方网站?  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  Laravel如何集成Inertia.js与Vue/React?(安装配置)  简单实现jsp分页  如何快速搭建高效可靠的建站解决方案?  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  JS中对数组元素进行增删改移的方法总结  大同网页,大同瑞慈医院官网?  高端建站如何打造兼具美学与转化的品牌官网?