Sublime Text 不自带 Ruby 解释器且不继承终端 PATH,导致 Ctrl+B 报“command not found”;根本原因是 GUI 启动时不加载 shell 配置(如 ~/.zshrc),需通过新建 Build System 显式调用登录 shell(如 zsh -l -c)或指定 ruby 绝对路径,并手动绑定 .rb/.erb/.ru 等文件语法。
Sublime Text 本身不带 Ruby 解释器,也**不会自动继承你终端里的 PATH**——这是所有配置失败的根源。只要终端能跑
,但 Sublime 按
报
,问题就出在这儿,不是 Ruby 没装好,也不是插件选错了。
为什么终端能跑 ruby,Sublime 却找不到?
macOS/Linux GUI 启动 Sublime(比如双击图标)时,它不加载
或
,也就读不到 rbenv/rvm 注入的 PATH;Windows 则默认只读「系统环境变量」,如果你装 Ruby 时没勾选“Add to PATH”或只加到了「用户变量」,Sublime 就看不见。
验证方式:在 Sublime 里按
打开控制台,运行
,看输出里有没有你的 Ruby 路径(如
、
或
)
macOS 用户别改
,改
并重启 Sublime 才生效
Windows 用户务必把 Ruby 的
目录加到「系统环境变量」PATH,不是「用户变量」
Build System 怎么写才真正可用?
Build System 是 JSON 文件,核心是让 Sublime 知道怎么调用
。别用默认的 “Ruby” 构建系统(那是 Sublime 2 遗留项,路径硬编码),自己新建一个。
用
+ 登录 shell(推荐):
—— macOS Catalina+ 默认 zsh,
表示登录态,能加载
和 rbenv/rvm 配置
用
+ 绝对路径(最稳):
—— 适合 Homebrew 安装,或 Windows:
(注意双反斜杠)
别碰
字段试图“补 PATH”——它只影响子进程,解决不了 shell 初始化缺失的根本问题
.rb、.erb、.ru 文件语法高亮失效怎么办?
Sublime 不会自动把
当作 Ruby,也不会识别
是 Rails 模板——这不是 Bug,是默认行为。必须手动绑定。
仿Sublime和notepad++编辑器效果
仿Sublime和notepad++编辑器效果
下载
打开任意
文件 → 右下角点当前语言名(如 “Plain Text”)→ 选 “Ruby” → 再点右侧 “Open all with current extension as…” → 输入
确认
文件:View → Syntax → Ruby on Rails → HTML (Rails) → 同样右下角 “Open all with current extension as…” → 输入
或
:View → Syntax → Ruby → “Open all with current extension as…” → 输入
或
别去改 Preferences → Settings – Syntax Specific,那只是临时覆盖,不解决文件关联
想跑 rails server 或 rspec,能用 Build System 吗?
不能。Build System 是单次执行器,设计用来跑
这种短命脚本。强行配
会导致 Sublime 卡死、端口占着不放、无法终止。
真实可行的做法只有两个:用
插件(通过 Package Control 安装),然后
→ “Terminus: Open Default Shell”,在里面跑
或
或者老老实实用系统终端:Sublime 专注写代码,终端专注运行服务——这是最稳的分工
别信“Build with arguments”或
这类写法,
在嵌套目录下极易解析失败,且 Build System 不支持交互式 TTY
最容易被忽略的是:Build System 不会自动保存文件。你改了代码但没按
,
运行的仍是磁盘旧版本。装
插件是唯一靠谱解法。
ruby -vCtrl+Bsh: ruby: command not found~/.zshrc~/.bash_profileCtrl+`import os; print(os.environ.get('PATH'))/opt/homebrew/bin/Users/xxx/.rbenv/shimsC:Ruby32-x64in~/.zshrc~/.zprofilebinrubyshell_cmd{"shell_cmd": "zsh -l -c 'ruby $file'", "file_regex": "^(*?):([0-9]*):?([0-9]*)", "selector": "source.ruby"}-l~/.zprofilecmd{"cmd": ["/opt/homebrew/bin/ruby", "$file"], "file_regex": "^(*?):([0-9]*):?([0-9]*)", "selector": "source.ruby"}{"cmd": ["C:\Ruby32-x64\bin\ruby.exe", "$file"]}path.rb.erb.rbrb.erberb.ru.rakerurakeruby script.rbrails serverTerminusCtrl+Shift+Prails serverrspeccd $file_path && rails s$file_pathCtrl+SCtrl+BSaveOnBuild