【问题标题】:Arrow keys not working properly during rails console在 Rails 控制台期间,箭头键无法正常工作
【发布时间】:2013-09-13 20:10:48
【问题描述】:

在我的 Rails 应用程序的开发阶段,我需要使用 rails console 命令。在这个命令中,我还需要修改我的命令,比如在我的命令中导航、调用上一个命令到控制台等。但是在按下箭头键之后,它不会调用像ABC、@ 这样的字母987654325@ - 把这些字母当作命令处理,自然会报错。-

此外,我在 Ubuntu 上使用 Ruby 2.0.0 和 rbenv 时遇到过这个问题。在我的 Gemfile 中,定义了 pry-railsrb-readline('~> 0.4.2') 之类的 gem。

新 1:这是退出 rails console 之前的错误输出:

FATAL: Pry failed to get user input using `Readline`.
To fix this you may be able to pass input and output file descriptors to pry directly. e.g.
  Pry.config.input = STDIN
  Pry.config.output = STDOUT
  binding.pry

新 2:我在 bash 上运行 rails console 并且我还从 Gemfile 中删除了 pry-rails,但问题仍然存在。

【问题讨论】:

  • 是的,现在我用的是 zsh
  • 我在 zsh 上遇到过几次这个问题,尝试暂时切换到 bash(或任何其他 shell)并检查它,因为原因太多(主要是由添加颜色的别名引起的)所以如果不是这样,我们将删除该分支。
  • @zrl3dx 我正在等待解决问题。
  • 所以尝试在 bash 中运行 rails c,这样我们就会知道我们是否走上正轨;)您可以先尝试运行 set term=builtin_ansi,这不会破坏任何东西,但可能会有所帮助。
  • 不,它也不起作用:(

标签: ruby-on-rails ruby ubuntu rbenv pry


【解决方案1】:

你尝试过宝石pry-rails吗?

这对我的项目很有效。

【讨论】:

  • 在我的 Gemfile 中是 pry-rails,但我意外地写了 pry。对此感到抱歉:(
  • :) 您是否尝试使用 apt-get 安装 readline?因为 readline ruby​​-lib 只是一个包装器。我不知道我明确安装了哪个软件包:) 也可能与 *-dev 一起使用?!
  • 我安装了libreadline6rlwrapreadline-common
  • 安装了但没用,我也更新了问题,看看就好。
【解决方案2】:

同样的问题,

我删除了 gem rb-readline 并解决了!

【讨论】:

    【解决方案3】:

    根据@ekremkaraca,我安装了所有指定的库

    sudo apt-get install -y libreadline6 rlwrap readline-common libreadline6-dev
    

    然后我重新编译 Ruby 以使用这些库:

    cd /tmp
    wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz
    tar xzf ruby-2.1.5.tar.gz
    cd ruby-2.1.5
    ./configure && make && sudo make install
    

    现在我的 Ruby 实例(irb 等)可以识别上/下/左/右箭头和相关键。

    请注意,如果您使用 rvm(或 rbenv 等)来管理 Ruby,请不要使用我的说明进行编译 - 请遵循您经理的说明!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-26
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-06
      相关资源
      最近更新 更多