跳转到主内容
极星编程网:以代码为星,赴技术山海!

Sublime配置Ruby语言开发环境_Sublime编译运行Ruby代码设置

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

相关文章