必须先确保终端中erlc -v和erl -version有输出,再安装官方Erlang插件(https://www.php.cn/link/0336a79be20b6e5b3df787ba9a9f0f05),最后配置构建系统并显式指定erlc绝对路径及"working_dir": "$file_path"。

确认 erlc 和 erl 在终端能直接调用
这步跳过,后面所有操作基本都白忙。Sublime 的构建系统不自己找 Erlang,只执行你环境里已有的命令。erlc 和 erl 必须在干净终端(关掉 Sublime 后新开一个)中能直接运行:
- 运行
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有返回
只装 erlang-editors 官方 Erlang 插件
名字叫 “Erlang” 的插件有好几个,但只有 erlang-editors 维护的那个 支持 OTP 24+ 新语法(比如 -spec fun/0),且不删空行、不崩 -include 跳转。
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Package Control: Install Package - 搜
Erlang,只选 GitHub 地址为https://www.php.cn/link/0336a79be20b6e5b3df787ba9a9f0f05的那个 - 装完打开任意
.erl文件,右下角应显示Erlang;若仍是Plain Text,右键 →Set Syntax→Erlang→Erlang手动激活一次
Build System 必须写死 erlc 的绝对路径
"cmd": ["erlc", "$file"] 看似简洁,但在 macOS/Linux GUI 环境下大概率静默失败;Windows 则常因路径空格或反斜杠解析出错。
- 先在终端运行
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…,填入:
/Users/xxx/.asdf/shims/erlc
-
"working_dir": "$file_path"必须设,否则erlc可能找不到-include的.hrl,或把.beam生成到错误目录 - 保存为
Erlang.sublime-build,之后按Ctrl+B就能编译,错误行可直接跳转
编译后要在终端用 erl -pa . 手动加载测试
别依赖插件“一键启动 shell”。它们常卡在路径、cookie、应用依赖等细节上,反而掩盖真实问题。
- 编译成功后,打开终端,
cd到你的.erl文件所在目录 - 运行
erl -pa .进入 shell(-pa .让 Erlang 在当前目录找.beam) - 在 shell 里执行
c(module_name).(注意末尾点号),返回{ok, module_name}才算真正加载成功 - 再调用函数:
module_name:function().—— 这才是和生产一致的执行路径 - 如果模块依赖其他
.beam,确保它们也在-pa指定的路径下,或加多个-pa参数
模块名必须与文件名严格一致(foo.erl → -module(foo)),中文路径、空格路径、BOM 编码都会导致 erlc 静默失败,这些细节最容易被忽略。











