必须先确保erlc和erl在终端可运行,再安装官方Erlang插件(https://www.php.cn/link/0336a79be20b6e5b3df787ba9a9f0f05),最后手动配置构建系统并写死erlc绝对路径、设working_dir为$file_path。

erlc 和 erl 必须在终端里能直接运行
Sublime Text 的构建系统不自带 Erlang,它只是调用你系统里的 erlc 和 erl。如果终端里都找不到这两个命令,Sublime 肯定也调不动——90% 的“Ctrl+B 没反应”“构建完成但没生成 .beam”都卡在这一步。
- 在终端执行
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 不识别、保存删空行,大概率是你装错了插件。社区里叫 “Erlang” 的插件不止一个,但只有 erlang-editors 维护的那个 才持续适配 OTP 24+。
- 按
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手动切一次,之后会自动识别 - 装错插件(如已停更的 Erlang Language Support)会导致
-include跳转失效、-record字段不补全,且无法修复
构建系统必须写死 erlc 绝对路径,不能依赖 PATH
GUI 应用(包括 Sublime)在 macOS/Linux 上往往继承不到 shell 配置的 PATH,Windows 则因空格和反斜杠解析出错。"cmd": ["erlc", "$file"] 看似简洁,实际在多数环境下会静默失败。
- macOS:在终端运行
which erlc,得到类似/Users/xxx/.asdf/shims/erlc的路径;新建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"
}
C:\Program Files\erl 这类带空格路径,改用短路径(如 C:\Progra~1\erl-25.3\bin\erlc.exe)或复制 erlc.exe 到无空格目录(如 D:\erlang\bin\erlc.exe),再在构建配置中写死该路径"working_dir": "$file_path" 必须设置,否则 erlc 可能找不到同目录下的 .hrl 或把 .beam 生成到错误位置编译完必须手动在终端里用 erl 加载测试
别信“一键启动 Erlang Shell”的插件。它们往往卡在路径、应用依赖、cookie 同步等细节上,反而增加调试成本。直接终端操作更透明、更可控。
- 编译完后,打开终端,
cd到你的源码目录(就是.erl所在目录) - 输入
erl -pa .进入 shell(-pa .让 Erlang 在当前目录找.beam) - 在 shell 里执行
:c(module_name).(注意末尾点号),成功返回{ok, module_name} - 再调用函数:
module_name:function().——这才是真实执行环境,和生产部署一致
真正麻烦的不是配置步骤,而是 Erlang 对模块名与文件名严格一致、.erl 必须存为 UTF-8 without BOM、-include 路径不自动解析这些隐性约束。一旦报错没提示,优先检查编码和 working_dir,而不是重装插件。


















