2012-11-30 13 views
10

Tôi đang gặp các vấn đề khác nhau với giao diện điều khiển Rails của tôi dưới JRuby, bao gồmRails console vấn đề sử dụng JRuby: không có nhân vật nhanh chóng, không hoàn thành tab, phím mũi tên bị gãy, vv

  • Không nhân vật nhắc
  • Tab hoàn không làm việc (tab đen được chèn)
  • lên/xuống mũi tên không lịch sử duyệt web (^[[A hoặc ^[[B được chèn, tương ứng)
  • trái/phải mũi tên không di chuyển con trỏ (^[[D hoặc ^[[C được chèn, tương ứng)
  • Home/End phím không di chuyển con trỏ đến đầu/cuối dòng (thay vì 1~ hoặc 4~ chèn, tương ứng); Ctrl +một/Ctrl +e công việc mặc dù
  • Ctrl +c giết console thay vì giết chết dòng Tôi đang bước vào
  • Ctrl +d không có bất kỳ hiệu ứng nào cho đến khi tôi nhấn Nhập (sau đó thực thi bất kỳ điều gì tôi đã nhập giữa Ctrl + dNhập vào vỏ Unix của tôi).

Tôi đã cài đặt phiên dịch JRuby tôi từ RVM như vậy:

rvm install jruby-1.6.8 --1.9 

Rails My dự án được quản lý sử dụng Bundler (không gemsets RVM), vì vậy tôi chạy Rails giao diện điều khiển của tôi sử dụng bundle exec rails c. Điều thú vị là, liệu irb cũng như bundle exec irb không có hầu hết các vấn đề trên, ngoại trừ Home/End phím và Ctrl +c cần một Nhập trước khi tôi nhận được một dòng dấu nhắc tươi.

tôi có thể tái tạo vấn đề với một Rails barebones Gemfile:

source 'https://rubygems.org' 
gem 'rails', '3.2.6' 
gem 'sqlite3' 

vỏ của tôi là zsh, trên Ubuntu 12.04 64-bit. $JAVA_HOME/usr/lib/jvm/java-7-openjdk-amd64, nhưng có thể vẫn là java-6 khi tôi cài đặt trình thông dịch này, nếu điều đó quan trọng.

Cập nhật: Một số sửa chữa

Các thiếu nhân vật nhắc nhở rõ ràng là do IRB.conf[:PROMPT_MODE] việc thiết để :NULL bởi Rails console.Đối với thường xuyên irb, tôi được đặt thành :RVM (dường như rvm thực hiện điều này trong ~/.rvm/scripts/irb.rb; Tôi loại trừ rvm gây ra sự cố này bằng cách nhận xét ra tập lệnh). Cung cấp giá trị :PROMPT_MODE trong ~/.irbrc khắc phục điều này. Tôi nghĩ có thể là một vấn đề tương tự đã gây ra Ctrl +c/Ctrl +d vấn đề bằng cách thay đổi :IGNORE_SIGINT:IGNORE_EOF, nhưng họ đều thiết lập các giá trị mặc định của họ.

Hoàn thành tab và các phím mũi tên được sửa bằng cách đặt :USE_READLINE thành true.

Dưới đây là các vấn đề hiện tại ~/.irbrc mà dường như để sửa chữa nói của tôi:

require 'irb/completion' 

IRB.conf[:PROMPT_MODE] = :SIMPLE 
IRB.conf[:USE_READLINE] = true 
IRB.conf[:AUTO_INDENT] = true 

Trả lời

2

Tôi có vấn đề này với Windows và sửa chữa là để tăng "Số Buffers" trong cài đặt nhắc lệnh. Dấu nhắc lệnh -> Thuộc tính -> Tùy chọn -> Số bộ đệm Mặc định là 4, tôi đã thay đổi thành 8 và tất cả đều hoạt động tốt (tôi nghĩ 5 sẽ hoạt động)

+0

Vui mừng bạn đã có thể giải quyết vấn đề của bạn, tuy nhiên tôi trên Linux vì vậy không chắc chắn nếu có là một lựa chọn tương tự –

5

Chạy bảng điều khiển với các loại sự cố sau cho tôi:

jruby -Xlaunch.inproc=true -S rails c 

Nếu bạn không thích chạy mà chỉ huy mọi thời gian, bạn có thể thiết lập một biến môi trường:

set JRUBY_OPTS=-Xlaunch.inproc=true 

hoặc

export JRUBY_OPTS=-Xlaunch.inproc=true 

sau đó

rails c 
+1

trình như một say mê. Trên Windows, một tập hợp đơn giản JRUBY_OPTS = -Xlaunch.inproc = true và rails c hoạt động như mong muốn. –

Các vấn đề liên quan