不能。sublime text 仅是文本编辑器,无内置 scala 运行时、编译器或构建系统,需依赖外部工具链(如 scalac/scala)配合自定义 build system 实现简易运行,且不支持依赖管理;metal 插件专为 vs code 设计,sublime 缺乏原生 lsp 支持,官方不兼容,强行配置易报错;推荐用 vs code + metals 扩展获得完整类型感知,sublime 中仅能实现语法高亮与手动编译运行。

Sublime 能不能直接运行 Scala?
不能。sublime text 本身只是文本编辑器,不带 Scala 运行时或编译器,更不内置构建系统。所谓“运行 Scala”,实际是靠外部工具链(scalac + scala)配合 Sublime 的 Build System 实现的简易调用——它连基础的依赖管理(比如 sbt)都不处理。
为什么 Metal 插件在 Sublime 里基本没用?
Metal 是专为 VS Code 设计的语言服务器(LSP),依赖 VS Code 的 LSP 客户端实现语义高亮、跳转、补全等功能。Sublime 没有原生 LSP 支持(除非装额外插件如 LSP),而即使装了 LSP 插件,Metal 也未提供 Sublime 兼容的启动方式或配置文档,官方明确不支持。
常见错误现象:Failed to start server: command 'metal' not found 或 connection refused —— 因为 metal 二进制根本没被正确安装或 PATH 不可达,且 Sublime 的 LSP 插件无法像 VS Code 那样自动下载/管理它。
- 别费劲配
metal:Sublime 下没有靠谱的 Scala LSP 生态 - 如果真要类型感知,老实用 VS Code + Metals 扩展,这是目前唯一稳定方案
- Sublime 里最多做到语法高亮(靠
Scala语法包)和手动编译运行
怎么让 Sublime 至少能编译并运行 .scala 文件?
靠自定义 Build System,调用系统已安装的 scalac 和 scala。前提是你的环境已装好 JDK 8+ 和 Scala(推荐用 sdkman 安装,避免 PATH 错乱)。
实操步骤:
- 确认终端能跑:
scalac -version和scala -e "println(1)" - Sublime → Tools → Build System → New Build System
- 贴入以下内容(注意
shell_cmd中的路径是否匹配你的 Scala 安装位置):
{ "shell_cmd": "scalac $file && scala ${file_base_name}", "file_regex": "^(.*?):([0-9]+):([0-9]+):", "selector": "source.scala", "working_dir": "$file_path" }
保存为 Scala.sublime-build,然后选中该构建系统。注意:${file_base_name} 只适用于单文件无 package 声明的场景;一旦用了 package 或多个文件,这套构建就失效——它不等价于 sbt run。
比 Build System 更靠谱的轻量替代方案?
用终端 + 快捷键。Sublime 支持 Ctrl+Shift+P(Win/linux)或 Cmd+Shift+P(Mac)呼出命令面板,输入 Terminal,选 Terminal: Open Terminal Here(需提前装 Terminus 插件)。这样你就能在当前项目根目录下直接敲 sbt run 或 scala-cli run .。
为什么这比折腾 Build System 强:
- 绕过 Sublime 对 jvm 进程生命周期的不可控管理(比如热重载失败、类加载冲突)
- 复用你项目里已有的
build.sbt或scala-cli配置,不会丢依赖或版本 - 错误堆栈完整可点击(Terminus 支持
Ctrl+Click跳转到报错行)
真正卡住人的从来不是“怎么在 Sublime 里点一下运行”,而是 classpath、Scala 版本、JDK 版本、sbt 插件这几样东西在背后互相咬死。编辑器只是个窗口,别让它背锅。