Sublime Text 需手动配置 PATH、语法绑定和终端使用才能支持 Rails 开发:Mac 改 ~/.zprofile,Win 加系统 PATH;.erb 文件需设为 HTML (Rails) 语法;禁用 Build System 运行 rails server,应使用终端或 Terminus 插件;跳转不准属能力边界,依赖 RubyTest 和 .sublime-project 索引优化。

Sublime Text 本身不提供 Ruby on Rails 的调试能力,它只是个编辑器——rails server、bin/rails c、rake db:migrate 这些都得靠终端跑;所谓“调试”,实际是写完代码后快速验证逻辑,而不是像 IDE 那样断点单步。真要本地跑 Rails 脚本,核心就三件事:让 Sublime 找到你的 ruby 和 rails,语法能高亮 .erb 和 .rb,以及别用 Build System 去启服务。
为什么 terminal 里 which rails 有结果,Sublime 却报 command not found: rails
GUI 启动的 Sublime 不加载 shell 配置(比如 ~/.zshrc),所以压根不知道 rbenv 或 rvm 把 rails 放哪儿了。macOS 用户必须改 ~/.zprofile(不是 .zshrc),Windows 用户要确认 ruby.exe 所在目录进了「系统环境变量」PATH(不是仅用户变量)。
- 验证方式:Sublime 里按
Ctrl+`打开控制台,输入import os; print(os.environ.get('PATH')),看输出里有没有.rbenv/shims或Ruby32-x64\bin - 最稳启动法:终端进项目目录,执行
subl .——这样 Sublime 继承当前 shell 环境,which rails就能命中 - 别信双击图标启动,那等于裸跑,PATH 是空的
怎么让 .erb 文件自动高亮、跳转、补全
Sublime 默认把 app/views/layouts/application.html.erb 当成纯 HTML,右下角显示 “HTML” 就说明没生效。这不是插件装少了,是语法绑定没做。
- 临时解决:打开文件 → View → Syntax → Ruby on Rails → HTML (Rails)
- 永久绑定:右键编辑区右下角的语法名 → Set Syntax as Default for this Extension → 输入
erb回车 - 如果用了
.haml或.slim,得单独装 Haml 或 Slim 插件(别装过时的 “Ruby Slim”,已停更) - 跳转不准?装
SublimeRuby(作者 guillermooo)和Rails Tools(作者 tekknolagi),重启后右键菜单才有 “Go to Model”
别用 Build System 启 rails server,会卡死
Build System 是为短命命令设计的(比如 ruby -c),塞进 rails server 后 Sublime 会假死、进程关不掉、端口占着不放——你得重启编辑器才能清干净。
- 开发阶段正确做法:终端执行
cd myapp && rails server,Sublime 只负责写代码 - 想在编辑器里开终端:装
Terminus插件,Ctrl+Shift+P→ “Terminus: Open Default Shell”,再输rails server - 别用
SublimeREPL跑bin/rails c,它不支持 TTY,IRB 提示符卡住不动
真正容易被忽略的是:Sublime 没有项目级符号索引能力,F12 跳转跨 helpers 或 concerns 时大概率失效——这不是配置问题,是编辑器定位决定的。如果你依赖高频跳转,就得接受它不如 RubyMine 稳定,或者把部分工作切回终端 grep + ag。


















