sublime text 配置 erlang 环境需三步:先确保终端中 erlc 和 erl 可用;再安装官方 erlang 插件(erlang-editors);最后配置绝对路径的 build system 并设 working_dir;编译后须在终端用 erl -pa . 手动加载测试。

Sublime Text 本身不运行 Erlang,所谓“配置环境”就是三件事:让 .erl 文件正确高亮、Ctrl+B 能调用 erlc 编译、终端里能用 erl 加载测试——缺一不可,顺序也不能乱。
确认 erlc 和 erl 在终端可用是前提
Sublime 的构建系统本质是执行 shell 命令,它不会自己找 Erlang,只认你环境里已有的命令。跳过这步直接配插件或构建系统,90% 的“没反应”“报错找不到命令”都源于此。
- 在干净终端中运行
erlc -v和erl -version,必须输出类似Erlang/OTP 26的版本信息 - macOS 用
brew install erlang通常自动进 PATH;Windows 安装时若没勾选 “Add to PATH”,需手动把C:\Program Files\erl-25.3\bin加入系统环境变量(注意路径含空格) - Linux 用户若用
asdf,需确保已执行asdf global erlang ref,并在新终端中验证which erlc有返回 - 别在 Sublime 里试——先关掉编辑器,在终端里敲两行命令,能过再往下走
只装官方 Erlang 插件,别碰 Erlang Language Support
语法高亮失效、保存删空行、-spec fun/0 解析失败,大概率是你装错了插件。社区里叫 “Erlang” 的插件不止一个,但只有 erlang-editors 维护的那个才持续适配 OTP 24+。
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Package Control: Install Package - 搜索
Erlang,只选 GitHub 地址为https://github.com/erlang-editors/sublime-erlang的那个 - 安装后打开任意
.erl文件,右下角应显示Erlang;若仍是Plain Text,右键 →Set Syntax→Erlang→Erlang手动激活一次,之后会自动识别 - 装错插件(如已停更的
Erlang Language Support)会导致-include跳转失效、-record字段不补全,且无法修复
Build System 必须写死 erlc 的绝对路径
GUI 应用(包括 Sublime)在 macOS/Linux 上往往继承不到 shell 配置的 PATH,Windows 则因空格和反斜杠解析出错。写 "cmd": ["erlc", "$file"] 看似简洁,实际在多数环境下会静默失败。
- 先在终端运行
which erlc(macOS/Linux)或where erlc(Windows),拿到完整路径,例如:/Users/xxx/.asdf/shims/erlc或C:\Progra~1\erl-25.3\bin\erlc.exe - 菜单 →
Tools→Build System→New Build System…,填入:
{
"cmd": ["/Users/xxx/.asdf/shims/erlc", "$file"],
"file_regex": "^(.+):([0-9]+):([0-9]+):.*$",
"working_dir": "$file_path",
"selector": "source.erlang"
}
-
$file是完整路径(如/home/user/proj/test.erl),$file_path是目录(如/home/user/proj)——必须设working_dir,否则erlc可能找不到-include的.hrl或生成.beam到错误位置 - 保存为
Erlang.sublime-build(路径自动为Packages/User/)
编译完必须手动在终端里用 erl -pa . 加载测试
别信“一键启动 Erlang Shell”的插件。它们往往卡在路径、应用依赖、cookie 同步等细节上,反而增加调试成本。直接终端操作更透明、更可控。
- 编译完后,打开终端,
cd到你的源码目录(就是.erl所在目录) - 输入
erl -pa .进入 shell(-pa .让 Erlang 在当前目录找.beam) - 在 shell 里执行:
c(module_name).(注意末尾点号),成功返回{ok, module_name} - 再调用函数:
module_name:function().——这才是真实执行环境,和生产部署一致 - 如果模块依赖其他
.beam,确保它们也在-pa指定的路径下,或用多个-pa;不要指望插件自动处理路径层级
最容易被忽略的是:所有配置都依赖终端中 erlc 和 erl 的可用性,而不是 Sublime 自身能力;一旦涉及 rebar3 项目或多模块依赖,就得放弃默认构建系统,改用自定义脚本调用 rebar3 compile。











