Заставить SublimeREPL использовать конкретную версию Ruby

834
Devon Parsons

Я установил SublimeREPL для использования с Ruby. Он пытается запустить код на Ruby 1.8.7, и я хотел бы, чтобы он работал на 1.9.3, а затем и на других версиях Ruby. Я не уверен, откуда она наследует окружающую среду. В настоящее время мой ПУТЬ это:

/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:"} } 

(так же, как и попытка обратного, ": / 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

1 ответ на вопрос

1
MattDMo

Во-первых, вы PATHдолжны содержать только каталоги, а не конкретные файлы, поэтому "default_extend_env"значение должно быть /home/user/.rubies/ruby-1.9.3-p547/bin. Тем не менее, есть способ создать пункт меню для запуска PRY с rubyдвоичным файлом в этом каталоге. Откройте свой 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", "$/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опция меню, которую вы можете использовать.

Большое спасибо, это сработало для меня. Теперь, однако, он не может найти pry, даже если он установлен для 1.9.3. Выглядит как проблема с `gem env`, он говорит, что мой ruby ​​exec 1.9.3, но исполняемый каталог dir, каталог установки и наиболее важные пути gem все 1.8.7 Devon Parsons 9 лет назад 0
@DevonParsons попробуйте добавить все ваши пути Ruby 1.9.3 из вашей переменной `PATH` в переменную` "default_extend_env" `. Если вам интересно, посмотрите `Packages / SublimeREPL / config / Ruby / pry_repl.rb`, чтобы узнать, что требуется. MattDMo 9 лет назад 0

Похожие вопросы