Sublime Text GUI启动不加载shell配置导致找不到ruby,需改~/.zprofile(Mac)或系统PATH(Win),并用import os; print(os.environ.get('PATH'))验证,再配zsh -l -c或绝对路径Build System。

Sublime Text 启动后根本看不到你的 ruby,不是配置错了,是它压根没加载 shell 环境。 GUI 启动(比如从 Dock 或开始菜单点开)的 Sublime 不读 ~/.zshrc、~/.bashrc,也不继承终端里生效的 PATH —— 所以 ruby -v 在终端能跑,Ctrl+B 却报 command not found: ruby 是必然结果。
怎么确认 Sublime 真的没拿到 PATH
别猜,直接看它实际用的路径:
- 在 Sublime 里按
Ctrl+`打开控制台 - 输入
import os; print(os.environ.get('PATH')) - 检查输出里有没有你的 Ruby 路径:
/opt/homebrew/bin(Apple Silicon)、/usr/local/bin(Intel)、/Users/xxx/.rbenv/shims(rbenv)、C:Ruby32-x64in(Windows)
如果没有,后续所有 Build System 配置都白搭 —— 它连 ruby 命令在哪都不知道。
Mac 用户:改 ~/.zprofile,不是 ~/.zshrc
GUI 应用(包括 Sublime)只读 ~/.zprofile,不读 ~/.zshrc。写错位置等于没写:
- 打开
~/.zprofile,末尾追加一行:export PATH="/opt/homebrew/bin:$PATH"(Apple Silicon)或export PATH="/usr/local/bin:$PATH"(Intel) - 如果用 rbenv:
export PATH="$HOME/.rbenv/shims:$PATH"(注意写绝对路径,~不会被解析) - 保存后,**必须完全退出 Sublime(Cmd+Q),再重新打开**,否则新 PATH 不生效
Windows 用户:必须加进「系统环境变量」PATH
只加进「用户变量」PATH 是无效的 —— Sublime GUI 进程不认这个:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」列表里双击
Path→「新建」→ 粘贴 Ruby 安装目录下的bin路径,例如:C:Ruby32-x64in - 确认该路径下确实存在
ruby.exe(右键属性看「位置」字段最准) - 重启 Sublime,再进控制台验证
os.environ.get('PATH')输出是否含该路径
Build System 写法必须匹配你的环境启动方式
PATH 补上了,但 Build System 还得写对,否则仍会静默失败或跳转失效:
- macOS/Linux(用 zsh):
"shell_cmd": "zsh -l -c 'ruby "$file"'"——-l是关键,表示登录态 shell,会 source~/.zprofile - Windows:
"cmd": ["C:\Ruby32-x64\bin\ruby.exe", "$file"]—— 反斜杠必须双写,路径不能含空格 - 无论哪平台,
"file_regex": "^([^:]*):([0-9]+):?"必须加上,否则错误行双击跳不到对应位置 - 别用裸
"cmd": ["ruby", "$file"],GUI 下 PATH 残缺时必挂
最常被忽略的一点:Sublime 的 GUI 进程和终端进程是两套环境,PATH 不互通。你改了 shell 配置,却没让 GUI 进程 reload 它,或者 Build System 没强制走登录态 shell,那它就永远“看不见”你装的 ruby。











