Sublime Text 2:Ruby Markers 插件错误

Sublime Text 2:Ruby Markers 插件错误

环境: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​​ 安装一起使用。

答案3

我在使用 rbenv 时遇到了几个问题,下面我将为其他人总结一下:

  1. 确保 rbenv 检测已开启:"check_for_rbenv": true
  2. 确保你已经安装了 rcodetools 并运行rbenv rehash
  3. ~/.rbenv/bin/rbenv如果你使用 homebrew 安装了 rbenv,当前版本的插件无法检测到这一点(根据 rbenv git 安装方法,预计 rbenv 会在
  4. 该插件不遵守 rbenv .ruby-version 约定,因为它在执行xmpfilter进程时不会更改目录。我有一个拉取请求打开修复了这个问题

博客文章

相关内容