Abe*_*ker 10 ruby-on-rails jruby rails-console
我在JRuby下的Rails控制台遇到了各种各样的问题,包括
^[[A
或^[[B
分别插入)^[[D
或^[[C
分别插入)1~
或4~
插入); Ctrl+ a/ Ctrl+ e虽然工作我从rvm安装了我的JRuby解释器,如下所示:
rvm install jruby-1.6.8 --1.9
Run Code Online (Sandbox Code Playgroud)
我的Rails项目是使用Bundler(而不是rvm gemsets)管理的,所以我使用我的Rails控制台bundle exec rails c
.有趣的是,原始irb
以及bundle exec irb
没有上述大部分问题,除了Home/ Endkeys和Ctrl+ c需要一个Enter之前我得到一个新的提示行.
我可以用准系统Rails复制这个问题Gemfile
:
source 'https://rubygems.org'
gem 'rails', '3.2.6'
gem 'sqlite3'
Run Code Online (Sandbox Code Playgroud)
我的shell是zsh
在64位的Ubuntu 12.04上.$JAVA_HOME
是的/usr/lib/jvm/java-7-openjdk-amd64
,但是当我安装这个解释器时它可能仍然是java-6,如果这很重要的话.
更新:一些修复
缺少提示字符显然是由引起IRB.conf[:PROMPT_MODE]
越来越设置为:NULL
通过Rails的控制台.对于常规irb
,我的设置为:RVM
(显然rvm执行此操作~/.rvm/scripts/irb.rb
;我通过注释掉脚本排除了导致此问题的rvm).提供修复此:PROMPT_MODE
值的价值~/.irbrc
.我想也许类似的问题是通过更改和引起Ctrl+ c/ Ctrl+ d问题,但它们都设置为默认值.:IGNORE_SIGINT
:IGNORE_EOF
通过设置:USE_READLINE
为true 可以修复制表符完成和箭头键.
这是我目前~/.irbrc
似乎解决了上述问题:
require 'irb/completion'
IRB.conf[:PROMPT_MODE] = :SIMPLE
IRB.conf[:USE_READLINE] = true
IRB.conf[:AUTO_INDENT] = true
Run Code Online (Sandbox Code Playgroud)
小智 6
运行以下控制台为我修复了这些问题:
jruby -Xlaunch.inproc=true -S rails c
Run Code Online (Sandbox Code Playgroud)
如果您不喜欢每次都运行该命令,可以设置一个环境变量:
set JRUBY_OPTS=-Xlaunch.inproc=true
Run Code Online (Sandbox Code Playgroud)
要么
export JRUBY_OPTS=-Xlaunch.inproc=true
Run Code Online (Sandbox Code Playgroud)
然后
rails c
Run Code Online (Sandbox Code Playgroud)
小智 2
我在使用 Windows 时遇到了这个问题,解决方法是增加命令提示符设置中的“缓冲区数量”。命令提示符 -> 属性 -> 选项 -> 缓冲区数量 默认为 4,我更改为 8,一切正常(我认为 5 也可以)
归档时间: |
|
查看次数: |
1525 次 |
最近记录: |