强制 SublimeREPL 使用特定版本的 Ruby

强制 SublimeREPL 使用特定版本的 Ruby

我安装了SublimeREPL用于 Ruby。它尝试在 Ruby 1.8.7 上运行代码,我希望它在 1.9.3 上运行,并且稍后在其他版本的 Ruby 上运行。我不确定它从哪里继承环境。目前我的 PATH 是:

/home/user/.gem/ruby/1.9.3/bin
/home/user/.rubies/ruby-1.9.3-p547/lib/ruby/gems/1.9.1/bin
/home/user/.rubies/ruby-1.9.3-p547/bin
/home/user/.rvm/gems/ruby-1.8.7-p334@global/bin
/home/user/.rvm/rubies/ruby-1.8.7-p334/bin
/usr/lib64/qt-3.3/bin
/usr/local/bin
/usr/bin
/bin
/usr/local/sbin
/usr/sbin
/sbin
/home/user/bin
/home/user/bin
/home/user/.rvm/bin

(格式化以便于阅读)
我在 SublimeREPL 的设置页面中添加了以下内容:

{
    "default_extend_env": {"PATH": "/home/user/.rubies/ruby-1.9.3-p547/bin/ruby:{PATH}"}
}

(以及尝试反向操作,“{PATH}:/home...”)。
尝试运行 repl 会导致错误:

/home/joe/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:296 ... (unimportant error)

显然它没有使用 ruby​​ 1.9.3。我该如何更改?

答案1

首先,您的目录PATH应该只包含目录,而不是特定文件,因此值"default_extend_env"应该是/home/user/.rubies/ruby-1.9.3-p547/bin。但是,有一种方法可以创建一个菜单选项来使用ruby该目录中的二进制文件运行 PRY。Packages/User通过选择打开您的目录Preferences -> Browse Packages...,然后进入User目录。进入后,创建以下目录结构:SublimeREPL/config/Ruby。接下来,在 Sublime 中创建一个新的 JSON 文件,内容如下:

[
  {
    "id":"tools",
    "children":[
      {
        "caption":"SublimeREPL",
        "mnemonic":"r",
        "id":"SublimeREPL",
        "children":[
          {
            "caption":"Ruby 1.9.3",
            "children":[
              {
                "command":"repl_open",
                "caption":"Ruby",
                "id":"repl_ruby",
                "mnemonic":"r",
                "args":{
                  "type":"subprocess",
                  "external_id":"ruby",
                  "encoding":"utf8",
                  "cmd":{
                    "linux":[
                      "/home/user/.rubies/ruby-1.9.3-p547/bin/ruby",
                      "${packages}/SublimeREPL/config/Ruby/pry_repl.rb",
                      "$editor"
                    ]
                  },
                  "soft_quit":"\nexit\n",
                  "cwd":"$file_path",
                  "cmd_postfix":"\n",
                  "autocomplete_server": true,
                  "syntax":"Packages/Ruby/Ruby.tmLanguage"
                }
              }
            ]
          }
        ]
      }
    ]
  }
]

并将其另存为Packages/User/SublimeREPL/config/Ruby/Main.sublime-menu。现在,如果你去Tools -> SublimeREPL -> Ruby应该有一个Ruby 1.9.3您可以使用的菜单选项。

相关内容