使用JRuby的Rails控制台问题:没有提示字符,没有选项卡完成,箭头键错误等
我在JRuby下的Rails控制台遇到了各种各样的问题,包括
- 没有提示字符
- 标签完成不起作用(插入文字标签)
- 向上/向下箭头不浏览历史记录(
^[[A
或^[[B
分别插入^[[B
) - 左/右箭头不移动光标(
^[[D
或^[[C
分别插入^[[C
) - Home / End键不将光标移动到行的开头/结尾(而是分别插入
1~
4~
); 然后按Ctrl + a / Ctrl + e工作 - Ctrl + c查杀控制台而不是杀死我正在输入的行
- Ctrl + d没有任何影响,直到我按Enter键 (然后执行我在Unix + shell中输入的 Ctrl + d和Enter之间的任何内容)。
我从rvm安装了我的JRuby解释器,如下所示:
rvm install jruby-1.6.8 --1.9
我的Rails项目是使用Bundler(而不是rvm gemsets)管理的,所以我使用bundle exec rails c
运行我的Rails控制台。 有趣的是,原始irb
以及bundle exec irb
没有上述大部分问题,除了Home / End键和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/scripts/irb.rb
;我通过注释掉脚本排除了导致此问题的rvm)。 在~/.irbrc
提供:PROMPT_MODE
值~/.irbrc
解决这个问题。 我想也许类似的问题是通过更改:IGNORE_SIGINT
和:IGNORE_EOF
导致Ctrl + c / Ctrl + d问题,但它们都设置为默认值。
通过将:USE_READLINE
设置为true,可以修复制表符完成和箭头键。
这是我目前的~/.irbrc
似乎解决了上述问题:
require 'irb/completion' IRB.conf[:PROMPT_MODE] = :SIMPLE IRB.conf[:USE_READLINE] = true IRB.conf[:AUTO_INDENT] = true
运行以下控制台为我修复了这些问题:
jruby -Xlaunch.inproc=true -S rails c
如果您不喜欢每次都运行该命令,可以设置一个环境变量:
set JRUBY_OPTS=-Xlaunch.inproc=true
要么
export JRUBY_OPTS=-Xlaunch.inproc=true
然后
rails c
我在Windows中遇到此问题,修复方法是在命令提示符设置中增加“缓冲区数”。 命令提示符 – >属性 – >选项 – >缓冲区数默认值为4,我更改为8并且一切运行良好(我认为5会工作)
- 每当我尝试为Jruby加载gem时,它都会给我这个错误。 这是在进入“gem install rails”之后。 请帮忙?
- 任何类似教程的文章都解释了如何在Android上使用jRuby?
- Rails控制台运行没有提示
- 将JRuby on Rails应用程序部署到Tomcat的最佳方法是什么?
- 使JRubyinheritanceJava代理设置
- 运行rake db:在没有一些初始化器的情况下迁移
- 错误:私有方法`gsub’调用nil:NilClass与pik install ruby 1.9.3
- JRuby on Rails与Ruby on Rails,有什么区别?
- 在jruby上安装mysql的许多错误