Sublime Text GUI启动不加载shell配置,需改~/.zprofile(Mac)或系统环境变量(Win)使PATH生效;验证方式为控制台执行import os; print(os.environ.get('PATH'))确认含Ruby路径。

Sublime Text 本身不管理 Ruby 环境变量,所谓“全局环境变量设置”,其实是让 Sublime 的 GUI 进程能读到你 shell 里定义的 RUBY_PATH、GEM_HOME、PATH 等——它不会自动加载 ~/.zshrc 或 ~/.bash_profile,必须手动对齐。
为什么终端能用 ruby,但 Sublime 报 command not found
GUI 启动的 Sublime(双击图标、Spotlight 打开)不读取 shell 配置文件,所以即使 rbenv 或 rvm 已生效,它的进程环境里 PATH 也不含 /Users/xxx/.rbenv/shims 或 /opt/homebrew/bin。验证方式最直接:
- 按
Ctrl+`打开 Sublime 控制台 - 输入
import os; print(os.environ.get('PATH')) - 检查输出是否包含你的 Ruby 安装路径(如
/opt/homebrew/bin、/Users/xxx/.rbenv/shims、C:\Ruby32-x64\bin)
没有?说明环境根本没通,后续所有 Build System 配置都只是在补漏洞。
Mac 用户:改 ~/.zprofile,不是 ~/.zshrc
macOS GUI 应用(包括 Sublime)只读 ~/.zprofile,~/.zshrc 是交互式终端才加载的。写错位置等于白配。
- 编辑
~/.zprofile:echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zprofile(Apple Silicon)或echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zprofile(Intel) - 如果用
rbenv:echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zprofile,再加echo 'eval "$(rbenv init - zsh)"' >> ~/.zprofile - 改完后必须完全退出 Sublime(右键 Dock 图标 → Quit),再重新打开才生效
Windows 用户:必须加「系统环境变量」PATH
Sublime GUI 启动时读的是系统级环境变量,不是当前 PowerShell 或 Git Bash 的临时 PATH。
- 打开「系统属性 → 高级 → 环境变量」
- 在「系统变量」里的
Path中新增一行:C:\Ruby32-x64\bin(路径以你实际安装为准,右键ruby.exe→ 属性 → 位置) - 别只加在「用户变量」里——那对 Sublime 无效
- 确认该目录下确实存在
ruby.exe和gem.bat,否则gem install类命令也会失败
验证是否真正生效的唯一方式
别信“我改了配置文件”,只信 Sublime 自己报出来的 PATH:
- 重启 Sublime 后,再次运行
import os; print(os.environ.get('PATH')) - 看到输出里有 Ruby 路径,才算真正打通
- 此时 Build System 才能用简洁写法(如
"shell_cmd": "ruby $file"),否则还得硬编码或套zsh -l -c
最容易被忽略的是:Mac 上改了 ~/.zshrc 就以为万事大吉,结果 Sublime 根本不认;Windows 上只改了用户 PATH,却忘了系统变量才是 GUI 进程的命脉。


















