我安装了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
您可以使用的菜单选项。