如何将RubyMine默认工作目录设为执行中.rb程序所在子目录?
在RubyMine 2022.3.1中恢复旧版运行工作目录行为的配置方法
问题说明
项目包含多个子文件夹,每个子文件夹内有:
- 一个或多个独立可执行的.rb文件
- 对应输入文件
input.txt
旧版RubyMine中,使用Cmd+Shift+R运行单个.rb文件时,默认以该文件所在目录为工作目录,代码data = File.readlines('input.txt')可正常读取同目录下的输入文件。升级至v2022.3.1后,默认工作目录改为项目根目录,触发文件找不到错误:
in `readlines': No such file or directory @ rb_sysopen - input.txt (Errno::ENOENT)
手动逐个修改运行配置的工作目录过于繁琐,需全局配置恢复旧版行为。
全局配置步骤
通过修改Ruby的运行配置模板,让所有新建的运行配置默认使用文件所在目录作为工作目录:
- 点击顶部菜单栏「运行」→「编辑配置」
- 在配置窗口左侧,展开「模板(Templates)」分类,选择「Ruby」
- 在右侧配置面板的「工作目录」字段,点击右侧的「插入宏」按钮(变量图标)
- 在弹出的宏列表中选择
$FileDir$(代表当前运行文件的所在目录) - 依次点击「应用」「确定」保存设置
此后,使用Cmd+Shift+R运行任何.rb文件时,自动生成的运行配置都会默认以该文件所在目录作为工作目录,无需手动修改。
批量修改已有配置
若存在已创建的旧运行配置,可批量修改:
在「编辑配置」窗口中,按住Cmd(Mac)或Ctrl(Windows/Linux)选中多个目标Ruby配置,在右侧统一将「工作目录」设置为$FileDir$,再点击「应用」完成批量更新。
适用范围
该配置方法同样适用于IntelliJ IDEA等JetBrains系列IDE,因它们的运行配置逻辑一致。
内容的提问来源于stack exchange,提问作者Jon Schneider
相关产品推荐
相关产品推荐

