sublime text不能安装erlang编译工具,仅调用系统已有的erlc和erl;配置核心是验证终端中erlc -v与erl -version有输出、安装官方erlang-editors/sublime-erlang插件、构建系统写死erlc绝对路径并设working_dir为$file_path。

Sublime Text 不能安装 Erlang 编译工具,它只调用你系统里已有的 erlc 和 erl;所谓“配置”,就是让 Sublime 能正确找到、调用它们,并避免静默失败。
确认 erlc 和 erl 已在终端可用
这是所有后续操作成立的前提。Sublime 的构建系统本质是执行 shell 命令,它不会自己安装或查找 Erlang,只认当前环境变量 PATH 里的命令。
- 关掉 Sublime,在干净终端中运行:
erlc -v和erl -version,必须输出类似Erlang/OTP 26的版本信息 - macOS 用
brew install erlang通常自动进 PATH;Windows 安装时若没勾选 “Add to PATH”,需手动把C:Program Fileserl-26.0in加入系统环境变量(注意路径含空格) - Linux 用户若用
asdf,确保已执行asdf global erlang ref,并在新终端中验证which erlc有返回 - 别在 Sublime 内置终端试——GUI 应用继承不到 shell 配置的 PATH,必须用系统终端验证
只装官方 Erlang 插件,不装 Erlang Language Support
语法高亮失效、-spec 不识别、保存删空行,90% 是插件装错了。只有 erlang-editors/sublime-erlang 持续适配 OTP 24+,支持 -spec fun/0、-callback、-opaque 等新语法。
- 按
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手动切换一次 - 用
Ctrl+Alt+Shift+P查光标位置 scope,应看到类似meta.spec.erlang;若只有source.erlang,说明插件根本没加载语法定义
构建系统必须写死 erlc 绝对路径,不能写 "cmd": ["erlc", "$file"]
GUI 应用在 macOS/Linux 上常继承不到 shell 的 PATH,Windows 则因空格和反斜杠解析出错。erlc 路径写错会导致编译静默失败——没报错、没输出、文件也不生成。
- 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"
}
- Windows:避免
C:Program Fileserl-26.0inerlc.exe这类带空格路径,改用短路径C:Progra~1erl-26.0inerlc.exe,或复制erlc.exe到无空格目录(如D:erlanginerlc.exe),再在构建配置中写死该路径 - 务必加
"working_dir": "$file_path",否则-include头文件路径会解析失败 - 保存为
Erlang.sublime-build,然后在Tools → Build System中选中它
rebar3 项目不能靠默认构建系统编译
纯 erlc 构建只适用于单文件测试。真实 Erlang 并发系统(含 gen_server、supervisor、依赖管理)必须用 rebar3 compile,而 Sublime 默认构建系统不支持项目级操作。
- Linux/macOS:新建
build_rebar.sh,内容为cd $(dirname "$1") && rebar3 compile;构建系统中设"cmd": ["bash", "/path/to/build_rebar.sh", "$file"] - Windows:新建
build_rebar.bat,内容为@echo off cd /d %~dp1 rebar3.cmd compile;构建系统中设"cmd": ["cmd.exe", "/c", "D:\path\to\build_rebar.bat"] - 注意:.erl 文件名必须与模块名严格一致(如
my_module.erl内必须是-module(my_module).),否则rebar3会跳过编译
容易被忽略的是编码问题:.erl 文件必须为 UTF-8 without BOM,否则 erlc 会报奇怪的语法错误,且 Sublime 不提示;还有 working_dir 必须设对,否则 -include 和 -define 路径全崩。











