跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

Sublime怎么配置Ruby环境_Sublime Ruby运行教程【脚本】

Sublime Text 运行 Ruby 报错的根本原因是 GUI 环境未加载 shell 配置文件导致 PATH 不一致,需手动在 Settings–User 中配置 path;构建系统需自定义以支持交互式输入和正确编码。 Sublime Text 运行 Ruby 脚本报
command not found: ruby
根本原因不是 Sublime 本身没配 Ruby,而是它默认用的是系统 shell 的 PATH,而 macOS 或某些 Linux 桌面环境(比如 GNOME、KDE)下,GUI 应用启动时往往不加载
~/.bashrc
或
~/.zshrc
里的 PATH 修改。 先在终端里运行
which ruby
,记下输出路径,比如
/usr/local/bin/ruby
或
/opt/homebrew/bin/ruby
打开 Sublime Text → Preferences → Settings – User ,在 JSON 里加一行:
"path": "/usr/local/bin:/opt/homebrew/bin"
(把上面
which ruby
输出的目录父路径填进去,多个用英文冒号分隔) Windows 用户注意:
path
要写成
"path": "C:\Ruby32-x64\bin"
这种双反斜杠格式,且确保该路径下真有
ruby.exe
用 Build System 运行 Ruby 却卡住不动或没输出 这是 Sublime 默认的
exec
构建器对交互式输入/输出处理得比较糙,尤其遇到
gets
、
STDIN.read
就会挂住 —— 它没给子进程连上真正的 TTY。 不要依赖默认的 Ruby build;手动建一个: Tools → Build System → New Build System 粘贴以下内容(macOS/Linux):
{ "shell_cmd": "ruby "$file"", "file_regex": "^(...*?):([0-9]*):?([0-9]*)", "selector": "source.ruby", "variants": [ { "name": "Run in Terminal", "shell_cmd": "osascript -e 'tell app "Terminal" to do script "cd \"$PWD\" && ruby \"$file\""'" } ] }
Windows 用户把
osascript
那行换成:
"shell_cmd": "start cmd /c "cd /d "$file_path" && ruby "$file_name" & pause""
保存为
Ruby.sublime-build
,然后在右下角切换 Build System 为 Ruby Sublime 提示
undefined method `require_relative'
或语法报错 说明当前执行的 Ruby 版本太老(比如系统自带的 1.8.7),而你的代码用了 2.0+ 的特性。Sublime 不会自动识别项目级 Ruby 版本管理器(如
rbenv
或
rvm
)的设置。 仿Sublime和notepad++编辑器效果 仿Sublime和notepad++编辑器效果 下载 检查终端里
ruby -v
和 Sublime 里
Build
输出的
ruby -v
是否一致;不一致就说明 PATH 没生效 如果用了
rbenv
,别只改
~/.zshrc
;还得在 Sublime 的
path
设置里显式加上
~/.rbenv/shims
(注意展开成绝对路径,比如
/Users/xxx/.rbenv/shims
) 用
rvm
的用户,建议直接用
rvm wrapper
生成固定路径的 ruby 可执行文件,再指向它,比折腾 shell 初始化更稳 中文路径或文件名下运行 Ruby 报
invalid byte sequence in UTF-8
Sublime 在 Windows 上默认用系统 ANSI 编码读取文件路径,但 Ruby 解释器又按 UTF-8 解析,一碰中文就崩。macOS 相对好些,但某些 locale 设置不对也会触发。 最简单:把 Ruby 文件移到全英文路径下,比如
~/code/test.rb
,避开问题 Windows 用户可在 Build System 的
shell_cmd
前加编码声明:
"shell_cmd": "chcp 65001 >nul && ruby "$file""
(强制 CMD 切 UTF-8) 长期方案:在 Ruby 文件开头加
# encoding: utf-8
,并确保 Sublime 保存文件时也选 UTF-8(右下角点击编码名可切换) Sublime 对 Ruby 的支持本质是“调外部解释器”,所有问题都绕不开路径、编码、shell 环境这三块。很多人卡在“为什么终端能跑,Sublime 就不行”,答案往往就藏在
which ruby
和
echo $PATH
的差异里。

相关文章