环境:Mac OSX 10.8.3;Ruby 1.9.3-p392 通过 rbenv;ST2 版本 2.0.1 构建 2217;
我已经安装了 ST2 的 Ruby Markers 插件和 gem rcodetools(该插件需要)
然而,当在 ruby 文件中运行插件(从菜单或热键)时,我收到 ST2 错误
There was an OS error: No suce file or directory
我搜索过这个问题,大多数人都说这是因为 ruby 不在 ST2 $PATH 中,但据我所知事实并非如此,正常的 Ruby 构建命令可以正常工作。
有人遇到过这个问题吗?或者有解决方案吗?我很想让这个插件正常工作。
答案1
我自己回答这个问题,因为我已经弄明白了,有人可能会发现这个问题。
rbenv 在其 shims 目录中安装了 xmpfilter 的 gem 可执行文件(rcodetools gem 中用于 Ruby Markers 的部分),并且需要告知 ST2/Ruby Markers 它在哪里。
首先在终端中确认 xmpfilter 的位置
$ which xmpfilter
它应该类似于 /Users/name/.rbenv/shims/xmpfilter
然后在 ST2 中,转到“首选项”-“包设置”-“Ruby 标记”-“用户设置”,并使用上一步中找到的路径粘贴以下内容
{
"xmpfilter_bin_posix": "/path/to/xmpfilter"
}
答案2
正如您的研究显示的那样,这是一个错误,因为 ST2$PATH
变量不包含 ruby 路径(实际上xmpfilter
是具体的路径)。这是因为 ST2 默认不会在用户会话中加载,而且由于您使用的是 rbenv,因此您的 ruby 环境会附加到$PATH
您的 shell 配置文件中(即.bashrc
)。
插件的默认设置假定您拥有多用户 ruby 安装,而不是单用户安装。对于 Ruby Markers,rvm 和 rbenv 管理的 ruby 安装都有特殊设置。使用"check_for_rvm": true
或"check_for_rbenv": true
将 xmpfilter 与托管 ruby 安装一起使用。