Erzwingen Sie SublimeREPL zur Verwendung einer bestimmten Version von Ruby

902
Devon Parsons

Ich habe SublimeREPL für die Verwendung mit Ruby installiert . Es wird versucht, Code in Ruby 1.8.7 auszuführen, und ich möchte, dass er in 1.9.3 und später in anderen Ruby-Versionen ausgeführt wird. Ich bin nicht sicher, wo es die Umgebung erbt. Derzeit ist mein PFAD:

/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 

(zur besseren Lesbarkeit formatiert)
Ich habe der Einstellungsseite für SublimeREPL Folgendes hinzugefügt:

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

(ebenso wie der umgekehrte Versuch ": / home ...").
Der Versuch, die Antwort auszuführen, führt zu einem Fehler:

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

Es ist eindeutig nicht Ruby 1.9.3. Wie ändere ich das?

1

1 Antwort auf die Frage

1
MattDMo

Zunächst PATHsollten Sie nur Verzeichnisse und keine bestimmten Dateien enthalten. Der "default_extend_env"Wert sollte also sein /home/user/.rubies/ruby-1.9.3-p547/bin. Es gibt jedoch eine Möglichkeit, eine Menüoption zu erstellen, um PRY mit der rubyBinärdatei in diesem Verzeichnis auszuführen . Öffnen Sie Ihr Packages/UserVerzeichnis, indem Sie auswählen Preferences -> Browse Packages...und dann das UserVerzeichnis eingeben . Dort angekommen, erstellen Sie die folgende Verzeichnisstruktur: SublimeREPL/config/Ruby. Erstellen Sie anschließend in Sublime eine neue JSON-Datei mit folgendem Inhalt:

[ { "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" } } ] } ] } ] } ] 

und speichern Sie es als Packages/User/SublimeREPL/config/Ruby/Main.sublime-menu. Wenn Sie jetzt zu gehen, Tools -> SublimeREPL -> Rubysollte es eine Ruby 1.9.3Menüoption geben, die Sie verwenden können.

Vielen Dank, das hat für mich funktioniert. Jetzt kann es jedoch keine Stacheln finden, obwohl es für 1.9.3 installiert ist. Sieht nach einem Problem mit `gem env` aus, mein Ruby Exec ist 1.9.3, aber das ausführbare Verzeichnis, das Installationsverzeichnis und vor allem die Pfade der Edelsteine ​​sind alle 1.8.7 Devon Parsons vor 9 Jahren 0
@DevonParsons versuchen Sie, alle Ihre Ruby 1.9.3-Pfade aus Ihrer Variablen "PATH" zur Variablen "default_extend_env" hinzuzufügen. Wenn Sie interessiert sind, schauen Sie unter "Packages / SublimeREPL / config / Ruby / pry_repl.rb" nach, um zu erfahren, was erforderlich ist. MattDMo vor 9 Jahren 0