Sublime Text 项目专属配置必须通过 Project→Save Project As…生成.sublime-project文件,而非手动创建;需先Add Folder to Project,再保存,且配置中build_systems须与settings同级、env中PATH用绝对路径、右上角显示项目名才生效。

Sublime Text 保存不同 Ruby 项目的环境配置,核心不是改全局设置,而是用 .sublime-project 文件为每个项目单独定义构建系统、路径、环境变量和语法行为——它能覆盖用户级配置,且优先级最高。
如何生成并编辑项目专属的 .sublime-project 文件
项目配置必须从「保存项目」开始,不能靠复制粘贴模板糊弄:
- 先通过 Project → Add Folder to Project 把 Ruby 项目根目录加进 Sublime;
- 再执行 Project → Save Project As…,保存为
my_rails_app.sublime-project(建议放在项目根目录下); - 用 Sublime 打开这个文件,它默认是 JSON 格式,结构里至少要有
"folders"和"settings"; - 不要手动写
"build_systems"字段到顶层——它必须嵌套在"settings"外层同级位置,否则 Sublime 忽略。
在项目配置中指定 Ruby 构建系统和 PATH
同一个 .sublime-project 文件可以绑定特定构建系统,并透传环境变量给子进程,这对多版本 Ruby(如 rbenv + 3.1.4 / 3.2.2)很关键:
- 把你的自定义构建系统(比如
Ruby-3.2.sublime-build)放在Packages/User/下,然后在项目文件中引用:"build_systems": [{"name": "Ruby-3.2"}]; - 如果项目依赖 Bundler 或特定 gemset,直接在项目文件里加
"env":"env": {"PATH": "/Users/me/.rbenv/shims:/opt/homebrew/bin:$PATH"}; - Windows 用户注意:
PATH中的反斜杠必须双写,且不能含空格路径,否则env无效; - 别在
env.PATH里写~,Sublime 不展开波浪号,得用绝对路径如/Users/me/.rbenv/shims。
为什么改了项目配置却没生效
常见失效不是语法错,而是加载逻辑被绕过:
- 没真正激活项目:打开文件后右下角显示 “No Project”,说明当前视图没关联到任何
.sublime-project;解决方法是用 Project → Open Project… 重新加载,而不是双击文件; - 构建系统名称拼错或大小写不一致:
"name": "ruby-3.2"和你菜单里看到的Ruby-3.2不匹配,就无法自动绑定; - 文件未保存就运行:
$file指向磁盘旧版本,而项目配置里的env又只影响构建进程,不触发自动保存; - 语法高亮没绑定:即使项目配置正确,
.rb文件仍显示 “Plain Text”,selector就不会命中,构建系统压根不出现——必须手动点右下角选 Ruby 并勾选 Open all with current extension as…。
项目配置真正的难点不在写 JSON,而在确认 Sublime 当前上下文是否真正在“项目模式”下运行——一旦窗口右上角没显示项目名,所有 .sublime-project 里的设置都形同虚设。











