Buộc SublimeREPL sử dụng phiên bản cụ thể của Ruby


1

Tôi đã cài đặt SublimeREPL để sử dụng với Ruby. Nó cố chạy mã trên Ruby 1.8.7 và tôi muốn nó chạy trên 1.9.3, và sau đó trên các phiên bản khác của Ruby. Tôi không chắc nó thừa hưởng môi trường từ đâu. Hiện tại PATH của tôi là:

/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

(được định dạng để dễ đọc)
Tôi đã thêm phần sau vào trang cài đặt cho SublimeREPL:

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

(cũng như thử ngược lại, "{PATH}: / home ...").
Cố gắng chạy kết quả thay thế trong một lỗi:

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

Rõ ràng là nó không sử dụng ruby ​​1.9.3. Làm thế nào để tôi thay đổi điều này?

Câu trả lời:


1

Trước hết, bạn PATHchỉ nên chứa các thư mục, không phải các tệp cụ thể, vì vậy "default_extend_env"giá trị phải là /home/user/.rubies/ruby-1.9.3-p547/bin. Tuy nhiên, có một cách để tạo tùy chọn menu để chạy PRY với rubytệp nhị phân trong thư mục đó. Mở Packages/Userthư mục của bạn bằng cách chọn Preferences -> Browse Packages..., sau đó vào Userthư mục. Khi đó, tạo cấu trúc thư mục sau : SublimeREPL/config/Ruby. Tiếp theo, trong Sublime, tạo một tệp JSON mới với các nội dung sau:

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

và lưu nó dưới dạng Packages/User/SublimeREPL/config/Ruby/Main.sublime-menu. Bây giờ, nếu bạn đi đến Tools -> SublimeREPL -> Rubyđó sẽ có một Ruby 1.9.3tùy chọn menu bạn có thể sử dụng.


Cảm ơn rất nhiều, điều này đã làm việc cho tôi. Bây giờ, mặc dù, nó không thể tìm thấy pry mặc dù nó đã được cài đặt cho 1.9.3. Trông giống như một vấn đề với gem envnó, nó nói viên ruby ​​của tôi là 1.9.3 nhưng đường dẫn thực thi, đường dẫn cài đặt và quan trọng nhất là các đường dẫn đá quý đều là 1.8.7
Devon Parsons

@DevonParsons thử thêm tất cả các đường dẫn Ruby 1.9.3 từ PATHbiến của bạn vào "default_extend_env"biến. Nếu bạn quan tâm, hãy xem Packages/SublimeREPL/config/Ruby/pry_repl.rbđể xem những gì cần thiết.
MattDMo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.