我在JRuby下的Rails控制台遇到了各种问题,包括
^[[A
或^[[B
)^[[D
或^[[C
分别插入)1~
或4~
); Ctrl + a / Ctrl + e 工作我从rvm安装了我的JRuby解释器,如下所示:
rvm install jruby-1.6.8 --1.9
My Rails项目使用Bundler(而不是rvm gemsets)进行管理,因此我使用bundle exec rails c
运行我的Rails控制台。有趣的是,原始irb
以及bundle exec irb
除了 Home / End 键以外,还没有上述大部分问题。 kbd> Ctrl + c 需要 Enter 才能获得新的提示行。
我可以用准系统Rails Gemfile
来复制这个问题:
source 'https://rubygems.org'
gem 'rails', '3.2.6'
gem 'sqlite3'
我的shell是zsh
,在Ubuntu 12.04 64位上。 $JAVA_HOME
是/usr/lib/jvm/java-7-openjdk-amd64
,但是如果重要的话,我在安装此解释器时可能仍然是java-6。
更新:部分修复
缺少的提示字符显然是由Rails控制台将IRB.conf[:PROMPT_MODE]
设置为:NULL
引起的。对于常规irb
,我的设置为:RVM
(显然rvm在~/.rvm/scripts/irb.rb
执行此操作;我通过注释掉脚本排除了导致此问题的rvm)。在:PROMPT_MODE
中提供~/.irbrc
值会解决此问题。我想也许类似的问题是通过更改{{1}导致 Ctrl + c / Ctrl + d 问题}和:IGNORE_SIGINT
,但它们都设置为默认值。
通过将:IGNORE_EOF
设置为true来修复标签完成和箭头键。
这是我现在的:USE_READLINE
似乎解决了上述问题:
~/.irbrc
答案 0 :(得分:6)
运行具有以下功能的控制台为我解决了这些问题:
jruby -Xlaunch.inproc=true -S rails c
如果您不想每次都运行该命令,可以设置一个环境变量:
set JRUBY_OPTS=-Xlaunch.inproc=true
或
export JRUBY_OPTS=-Xlaunch.inproc=true
然后
rails c
答案 1 :(得分:2)
我遇到了Windows的这个问题,修复方法是在命令提示符设置中增加“缓冲区数”。 命令提示符 - >属性 - >选项 - >缓冲区数量 默认值是4,我改为8并且一切运行良好(我认为5会工作)