Sublime Text 本身不运行 Ruby,仅调用系统已安装的 ruby 命令;配置成功需满足三点:PATH 可见(GUI 启动不加载 shell 配置,需用 zsh -l -c 或绝对路径)、.rb 文件手动绑定 Ruby 语法、file_regex 匹配 Ruby 错误格式(如 "^(1):([0-9]+):?([0-9])")。: ↩

Sublime Text 本身不运行 Ruby,只调用你系统里已装好的 ruby 命令;所谓“支持 Ruby 开发”,就是让它能找得到这个命令、认得出 .rb 文件、并把错误行号定位准——三件事缺一不可。
Ctrl+B 报 command not found: ruby 怎么办
这不是 Ruby 没装好,是 Sublime GUI 启动时压根没加载你的 shell 配置(比如 ~/.zshrc),PATH 里根本没 ruby 路径。
- 先验证:按
Ctrl+`打开控制台,运行import os; print(os.environ.get('PATH')),看输出里有没有/opt/homebrew/bin(macOS Homebrew)、/Users/xxx/.rbenv/shims(rbenv)或C:Ruby32-x64in(Windows) - macOS/Linux 推荐用登录态 shell 加载环境:
"shell_cmd": "zsh -l -c 'ruby "$file"'"(注意双引号嵌套和转义) - Windows 必须写死路径:
"cmd": ["C:\Ruby32-x64\bin\ruby.exe", "$file"](反斜杠必须双写,路径不能含空格) - 别信
path字段能“补 PATH”——它只影响子进程,解决不了 shell 初始化缺失
.rb 文件打开还是 Plain Text
Sublime 默认不自动绑定 .rb 扩展名,这不是插件问题,是语法识别没触发。
- 打开任意
.rb文件 → 点右下角语言名(如Plain Text)→ 选Ruby - 再点右侧出现的
Open all with current extension as…,这样所有.rb文件下次都会自动高亮 - Sublime Text 4 自带 Ruby 支持,不用装 Package Control 里的旧版
Ruby插件 - 如果用自定义扩展名(比如
.ru或.rake),要单独在View → Syntax → Open all with current extension as…里绑定
构建输出点不了错误行
双击报错信息跳不到对应代码行,基本是 file_regex 没配对 Ruby 的实际错误格式。
- Ruby 标准错误格式是:
test.rb:5:in `foo': undefined method `bar' (NoMethodError) - 推荐正则:
"file_regex": "^([^:]*):([0-9]+):?([0-9]*)"(匹配文件名、行号、可选列号) - 别用默认的
^.*?:(\d+):?(\d+),它会漏掉文件名中的冒号(比如 Windows 路径C:.rb) - 这个字段必须加,否则构建失败后只能手动翻行号
最易被忽略的是:GUI 启动的 Sublime 不继承 shell 环境,哪怕你 which ruby 输出再漂亮,它也看不见——所以验证 PATH 是第一步,不是最后一步。

















