Sublime Text需手动配置Ruby构建系统才能运行.rb文件;创建JSON格式的Ruby.sublime-build文件,指定cmd、path等字段,并注意PATH环境变量与ruby路径匹配。

Sublime Text 本身不自带 Ruby 运行环境,必须手动配置构建系统(Build System)才能执行 .rb 文件;否则点击 Ctrl+B 会报错 Unable to find target build system 或直接无响应。
如何创建 Ruby 构建系统
Sublime Text 执行 Ruby 脚本依赖「构建系统」——本质是一个 JSON 配置文件,告诉 Sublime 用什么命令、在什么路径下运行代码。
- 菜单栏选择 Tools → Build System → New Build System…
- 清空默认内容,粘贴以下配置(适配大多数 macOS/Linux 用户):
{
"cmd": ["ruby", "$file"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.ruby",
"encoding": "utf-8",
"path": "/usr/local/bin:/opt/homebrew/bin"
}
-
path字段很重要:它补充了 Sublime 的环境变量,确保能定位到你安装的ruby可执行文件。如果你用rbenv或rvm,需替换成对应 shims 路径,例如~/.rbenv/shims(注意:Sublime 不解析~,要写绝对路径如/Users/yourname/.rbenv/shims) - 保存为
Ruby.sublime-build,建议放在默认弹出路径(即Packages/User/目录下)
Windows 下 ruby 命令找不到怎么办
Windows 用户常见问题是:明明 cmd 中能运行 ruby --version,但在 Sublime 里仍提示 'ruby' is not recognized。
- 根本原因:Sublime 启动时读取的是系统级环境变量,而非你当前终端的 PATH(尤其使用 Git Bash、Cmder 或 PowerShell 启动 Sublime 时)
- 解决方法:在构建系统中显式指定
ruby.exe全路径,例如:
{
"cmd": ["C:\\Ruby31-x64\\bin\\ruby.exe", "$file"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.ruby",
"encoding": "utf-8"
}
- 确认路径是否正确:打开资源管理器,导航到 Ruby 安装目录,找到
bin/ruby.exe,右键属性复制「位置」,再拼上文件名 - 不要用
C:\Program Files\...这类含空格路径,容易触发解析失败;若必须用,请用双反斜杠\\转义
为什么 $file 不能自动保存再运行
Sublime 默认构建系统不会在运行前自动保存当前文件,这意味着你改了代码但没按 Ctrl+S,执行的仍是磁盘上的旧版本。
- 没有内置开关开启「保存后构建」,但可通过插件实现:安装
SaveOnBuild(通过 Package Control 搜索安装) - 或手动加一行 shell 命令(仅限 macOS/Linux):
"cmd": ["sh", "-c", "touch \"$file\" && ruby \"$file\""]
- 注意:
touch不是 Windows 原生命令,该写法在 Windows 下无效 - 更稳妥的做法:养成习惯,执行前先按
Ctrl+S—— 这比依赖自动化更可靠
真正卡住人的往往不是语法或配置格式,而是 PATH 和当前 shell 环境的错位;特别是用版本管理工具(rbenv/rvm)时,Sublime 启动方式(从 Dock、终端、还是脚本)会直接影响它能否读到正确的 ruby。这点最容易被忽略,也最难排查。











