Sublime Text Ruby环境失效主因是GUI启动未加载PATH、Build System配置错误或语法绑定丢失;需先用import os; print(os.environ.get('PATH'))验证路径,再按平台重配zsh -l -c(macOS/Linux)或绝对路径(Windows)Build System,并手动绑定.rb文件为Ruby语法。

Sublime Text 里 Ruby 运行环境突然失效,十有八九不是 Ruby 卸载了或坏了,而是 Sublime 自己“看不见”它了——GUI 启动时 PATH 没加载、构建系统配置被覆盖、或者 Ruby 版本切换后 shims 路径变了。先别重装插件或 Ruby,按顺序查这三处。
验证 Sublime 当前看到的 PATH 是否包含 ruby
这是所有问题的起点。终端里 ruby -v 正常,不代表 Sublime 能用。必须进它自己的进程看真实环境:
- 在 Sublime 里按
Ctrl+`打开控制台 - 输入
import os; print(os.environ.get('PATH')) - 检查输出里有没有你的 Ruby 路径:macOS 上常见的是
/opt/homebrew/bin(Apple Silicon)、/usr/local/bin(Intel)或/Users/xxx/.rbenv/shims;Windows 上是类似C:Ruby32-x64in - 如果没出现,说明 Sublime 根本没继承 shell 环境,后续任何构建命令都会报
command not found: ruby
重建 Build System:macOS/Linux 用 zsh -l -c,Windows 必须写死路径
旧的 Ruby.sublime-build 文件可能被更新覆盖,或用了裸 "shell_cmd": "ruby $file" 这种在 GUI 下必然失败的写法。重写时注意平台差异:
- macOS/Linux(zsh 用户):
"shell_cmd": "zsh -l -c 'ruby "$file"'"——-l是关键,强制加载~/.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,要么重装到无空格路径,要么用robocopy /junction建符号链接 - 所有配置都必须带
"file_regex": "^([^:]*?):([0-9]+):",否则错误行双击跳转失效
检查 .rb 文件是否仍绑定为 Plain Text
语法绑定不会自动恢复。哪怕你之前设过,升级 Sublime 或重装后可能回退:
- 打开任意
.rb文件,右下角显示 “Plain Text” 就说明没绑定 - 点击右下角语言名 → 选
Ruby - 立刻点右侧弹出的
Open all with current extension as…→ 确认rb - 如果项目用非标扩展名(如
.ru、.rake),也要对每个扩展名单独执行一遍这个操作
PATH 失效的隐藏原因:macOS 用户该改 ~/.zprofile,不是 ~/.zshrc
很多用户把 export PATH=... 写在 ~/.zshrc 里,终端能用,但 GUI 应用(包括 Sublime)只读 ~/.zprofile:
- Mac 用户请检查
~/.zprofile是否包含类似export PATH="/opt/homebrew/bin:$PATH"的行 - 改完后必须完全退出 Sublime(不是关窗口,是右键 Dock 图标 → Quit),再重新启动
- Windows 用户请确认 Ruby 的
bin目录已加入「系统环境变量」PATH,不是仅「用户变量」——GUI 进程默认不读用户级 PATH
最容易被忽略的是:Sublime 构建系统从不自动保存文件。改完代码没按 Ctrl+S 就 Ctrl+B,跑的还是磁盘上旧版本。这不是环境问题,但常被误判为配置失效。











