บังคับให้ SublimeREPL ใช้ Ruby เฉพาะรุ่น


1

ฉันติดตั้งแล้ว 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:{PATH}"}
}

(เช่นเดียวกับการลองย้อนกลับ "{PATH}: / home ... ")
ความพยายามในการเรียกใช้ผลลัพธ์การจำลองในข้อผิดพลาด:

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

เห็นได้ชัดว่ามันไม่ได้ใช้ทับทิม 1.9.3 ฉันจะเปลี่ยนสิ่งนี้ได้อย่างไร

คำตอบ:


1

ก่อนอื่นคุณ 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",
                      "${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 ตัวเลือกเมนูที่คุณสามารถใช้ได้


ขอบคุณมากมันใช้งานได้สำหรับฉัน แม้ว่าตอนนี้มันไม่สามารถหาแงะแม้ว่ามันจะติดตั้งสำหรับ 1.9.3 ดูเหมือนว่าจะมีปัญหากับ gem envมันบอกว่า ruby ​​exec ของฉันคือ 1.9.3 แต่ dir ที่ปฏิบัติการได้, dir ของการติดตั้งและที่สำคัญที่สุดคือเส้นทางอัญมณีทั้งหมด 1.8.7
Devon Parsons

@DevonParsons ลองเพิ่มเส้นทาง Ruby 1.9.3 ทั้งหมดของคุณ PATH ตัวแปรสำหรับ "default_extend_env" ตัวแปร. หากคุณสนใจลองดู Packages/SublimeREPL/config/Ruby/pry_repl.rb เพื่อดูสิ่งที่จำเป็น
MattDMo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.