Ctrl+B报“command not found: ruby”是因为Sublime GUI启动未加载shell环境变量(如~/.zshrc),导致PATH缺失;需先用import os; print(os.environ.get('PATH'))验证路径,再通过zsh -l -c(macOS/Linux)或绝对路径(Windows)配置Build System,并手动绑定.rb文件语法及修正file_regex。

Ctrl+B 报 command not found: ruby,不是 Ruby 没装,是 Sublime 根本没看到它
GUI 启动的 Sublime 不加载 ~/.zshrc 或系统 PATH,所以哪怕终端里 ruby -v 正常,Sublime 也找不到 ruby。验证方式很简单:按 Ctrl+` 打开控制台,输入 import os; print(os.environ.get('PATH')),看输出里有没有你的 Ruby 路径(比如 /opt/homebrew/bin、/Users/xxx/.rbenv/shims 或 C:Ruby32-x64in)。没有就说明环境没对上,后续所有配置都白搭。
Build System 必须用登录态 shell(macOS/Linux)或绝对路径(Windows)
别用 Tools → Build With → Ruby,默认项已失效;也别裸写 "shell_cmd": "ruby $file"——GUI 下基本必挂。
- macOS/Linux(zsh 用户,Catalina+ 默认):
"shell_cmd": "zsh -l -c 'ruby "$file"'"——-l触发登录态,自动source ~/.zshrc,rbenv和rvm都能识别 - macOS/Linux(bash 用户):
"shell_cmd": "bash -l -c 'ruby "$file"'" - Windows:
"cmd": ["C:\Ruby32-x64\bin\ruby.exe", "$file"]—— 反斜杠必须双写,路径不能含空格(如C:Program Files会静默失败) - 用
rbenv且想保持版本灵活:"shell_cmd": "/Users/xxx/.rbenv/shims/ruby "$file""—— 写绝对路径,~不会被解析
.rb 文件打开还是 Plain Text?手动绑定一次,永久生效
这不是插件问题,是 Sublime 没把文件当 Ruby 处理。首次打开 .rb 文件时右下角显示“Plain Text”,点它 → 选 Ruby → 再点右侧出现的 Open all with current extension as…,之后所有 .rb 文件都会自动高亮、缩进、匹配括号。
- 自定义扩展名(如
.ru或.rake)也要同样操作,在View → Syntax → Open all with current extension as…中单独绑定 - Sublime Text 4 自带 Ruby 支持,不用装旧版 Package Control 插件
错误行双击跳不进去?file_regex 必须匹配 Ruby 实际报错格式
Ruby 错误标准输出是 test.rb:5:in `foo': undefined method `bar' (NoMethodError),如果 file_regex 不匹配,双击就无效。用这个最稳:
"file_regex": "^([^:]*?):([0-9]+):(?:[0-9]+)?:?.*"
- 别漏掉这个字段,否则构建失败后只能手动翻行号
- 不要加
"path"字段试图“补 PATH”——它只影响子进程,解决不了 shell 初始化缺失的根本问题 - Build System 是单次命令执行器,别指望它跑
rails server或pry,交互式需求请用外部终端
Ctrl+B 就变成玄学。

















