必须先安装erlang并验证erlc和erl命令可用,再安装官方sublime-erlang插件,配置绝对路径的构建系统,并确认语法scope为meta.spec.erlang。

确认系统已装 Erlang 且命令可用
Sublime Text 不自带 Erlang 运行时,所有高亮、编译、跳转功能都依赖你本地已安装的 erlc 和 erl。跳过这步直接装插件,90% 的问题(比如右下角始终显示 Plain Text、Ctrl+B 没反应)都出在这里。
关掉 Sublime,打开终端,执行两行命令:
-
erlc -v—— 必须输出类似Erlang/OTP 26 -
erl -version—— 同样要有版本输出
如果报 command not found,说明 Erlang 没装或没进 PATH:
- macOS 用
brew install erlang通常自动生效;若用asdf,运行asdf global erlang ref并新开终端验证which erlc - Windows 安装时务必勾选 “Add to PATH”,否则手动把
C:Program Fileserl-25.3in加进系统环境变量(注意路径含空格,后续构建系统会因此失败) - Linux 用户若从源码编译,确保
bin/目录在$PATH中
只装官方 Erlang 插件,别碰其他同名插件
社区里叫 “Erlang” 的插件不止一个,但只有 erlang-editors/sublime-erlang 持续适配 OTP 24+,支持 -spec、-callback、-opaque 等新语法。装错插件(比如已停更的 Erlang Language Support)会导致:
-
-spec fun() -> ok.被当成注释,不着色也不校验 - 保存时误删空行
-
-include头文件跳转失效
操作步骤:
- 按
Ctrl+Shift+P(Windows/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手动切一次
构建系统必须写死 erlc 绝对路径
Sublime 的构建系统本质是调 shell 命令,但它在 GUI 下往往继承不到你的 shell PATH。用 "cmd": ["erlc", "$file"] 在多数环境下会静默失败——没报错、没输出、也没生成 .beam 文件。
正确做法是手动写死 erlc 的绝对路径:
- macOS/Linux:终端运行
which erlc,得到类似/Users/xxx/.asdf/shims/erlc或/usr/local/bin/erlc - Windows:运行
where erlc,结果类似C:Program Fileserl-25.3inerlc.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"
}
保存为 Erlang.sublime-build,再按 Ctrl+B 就能编译了。记得设 working_dir,否则 -include 找不到头文件。
检查语法 scope 是否生效
即使插件装了、构建系统配了,-spec 行仍无颜色?大概率是语法 scope 没加载成功。这不是配置问题,而是插件根本没接管文件解析。
验证方法:
- 打开一个
.erl文件,在-spec行任意位置,按Ctrl+Alt+Shift+P(Windows/Linux)或Cmd+Alt+Shift+P(macOS) - 看状态栏输出:正常应包含
meta.spec.erlang;如果只有source.erlang,说明插件的语法定义没加载 - 此时去
Ctrl+Shift+P输入Package Control: List Packages,确认列表里有Erlang(不是erlang-sublime或SublimeErlang)
scope 错了,高亮、折叠、补全全失效,重装插件前先查这个。











