不能——Sublime Text 本身只是编辑器,不带 Ruby 解释器,需手动配置构建系统调用已安装的 ruby 命令;关键前提是 ruby 已正确安装并加入系统 PATH,否则需在 .sublime-build 文件中指定绝对路径。

Sublime Text 能不能直接运行 Ruby 代码
不能——Sublime Text 本身只是编辑器,不带 Ruby 解释器,也不内置构建系统。所谓“配置 Ruby 环境”,本质是告诉 Sublime:当按下 Ctrl+B(Windows/Linux)或 Cmd+B(macOS)时,用哪个命令去调用系统已安装的 ruby 可执行文件。
怎么让 Sublime 找到你本地的 ruby 命令
关键是确认 ruby 在终端里能直接运行,且路径被 Sublime 构建系统识别。常见失败不是 Sublime 配置错,而是 Ruby 根本没装好或没进 PATH。
- 先在终端运行
which ruby(macOS/Linux)或where ruby(Windows),记下输出路径,比如/usr/bin/ruby或C:Ruby31-x64in uby.exe - 如果返回空,说明 Ruby 没装,或装了但没加进系统 PATH——这时配 Sublime 没意义,得先解决 Ruby 安装问题
- Sublime 默认构建系统会尝试调用
ruby命令,不指定绝对路径;若你用 rbenv/rvm 管理 Ruby 版本,which ruby返回的是 shell wrapper 路径,Sublime 启动时可能没加载 shell 配置,导致找不到ruby——此时必须写死完整路径
创建自定义 Ruby 构建系统(.sublime-build 文件)
Sublime 的构建系统是 JSON 格式文件,放在 Sublime Text/Packages/User/ 目录下,后缀为 .sublime-build。它决定按什么命令跑你的 .rb 文件。
- 新建文件,命名为
Ruby.sublime-build,内容如下:
{
"cmd": ["ruby", "$file"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.ruby",
"encoding": "utf-8"
}
-
"cmd"是核心:数组第一项是可执行文件名,"$file"是当前打开的文件路径;如果你的ruby不在 PATH,这里要写成["/usr/bin/ruby", "$file"]或["C:\Ruby31-x64\bin\ruby.exe", "$file"] -
"file_regex"用于解析错误信息中的文件名和行号,让点击错误跳转生效;默认正则对大多数 Ruby 报错格式兼容,但若你用pry或某些 gem 改变了输出格式,可能失效 -
"selector": "source.ruby"表示该构建系统只在 Ruby 语法高亮的文件中自动激活(即后缀为.rb且语法设为 Ruby)
为什么按 Ctrl+B 没反应或报 “command not found”
这不是 Sublime 的 bug,而是构建系统和环境之间没对齐。最常踩的坑集中在三处:
- 文件保存了没?
$file是当前文件路径,未保存的临时文件没有磁盘路径,构建系统会静默失败 - 语法高亮设对了吗?右下角状态栏要显示 “Ruby”,不是 “Plain Text” 或 “Ruby on Rails”——后者 selector 不匹配,构建系统不会出现
- Windows 用户注意反斜杠:JSON 中路径必须用双反斜杠
"C:\Ruby31-x64\bin\ruby.exe",单斜杠或正斜杠都可能被解释为转义字符或路径分隔符错误 - macOS/Linux 用户若用 rvm,可在
"cmd"中改用["bash", "-c", "source $HOME/.rvm/scripts/rvm; ruby '$file'"],但性能略低,且每次构建都重新加载 rvm,不推荐长期使用
真正麻烦的地方往往不在 Sublime 设置里,而在于你有没有意识到:Sublime 构建系统启动时,是一个干净的、不读取你 shell profile 的子进程。PATH、rvm/rbenv 环境、甚至 ruby -v 和 Sublime 中 Ctrl+B 调用的 ruby,可能是两个不同版本。这点最容易被忽略。










