我刚在 Windows 机器上安装了 Ruby 1.9.2,但退格键和其他箭头键不起作用。这只发生在我打开 Git Bash 控制台的 IRB 时。但在 Windows 控制台上可以正常使用。请问有什么帮助吗?
注意:早期版本的 Ruby 在两个控制台上的 IRB 都可以正常工作。
我也遇到了同样的问题。使用 --noreadline 选项运行 irb 可以解决这个问题:
irb --noreadline
IRB.conf[:USE_READLINE] = false
看起来您在编译Ruby时没有安装readline。因此,请安装readline,可能还需要安装readline-devel,然后重新编译Ruby。
如此文档所述https://groups.google.com/forum/#!topic/rubyinstaller/HgswOz1T-eE,请使用以下命令/别名:
alias irb="ruby -S irb"
如果那个方法不起作用,可以使用pry代替:
gem install pry
gem install rb-readline
Gemfile
或 require 'rb-readline'
来进行引用。 - HarlemSquirrel~/blah$ irb
irb(main):001:0> ^[[A^[[D^[[B^[[C
我在OSX上,几个月前没有这个问题
启动pry时也遇到了错误,pry<ENTER>显示“原因:找不到图像 - /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin16/readline.bundle”
我尝试了brew link readline --force
,但没有帮助,我尝试了irb --noreadline
,但也没有帮助
但是对我有用的是来自Ruby专家的建议- brew upgrade
根据我与一位Ruby专家的交谈,显然情况是“Trunk中有一个新的默认宝石,Reline,它是readline的后备。”
然后我打开了一个新的终端窗口,$irb可以使用箭头键。
然后我执行了sudo gem install pry
,打开了一个新的终端窗口,pry可以工作。
Ruby回退到了2.3,而实际上应该是2.6,我以为它是2.6
所以我运行了brew install ruby
,它说ruby 2.6已经安装了,并建议运行brew reinstall ruby
。所以我运行了brew reinstall ruby
。打开一个新的终端窗口,它仍然是在2.3上。但是它建议将export PATH="/usr/local/opt/ruby/bin:$PATH"
添加到.bash_profile(在osx上自动运行的文件)。我做了这件事,但它没有起作用,但在每个终端会话的开头手动执行PATH="/usr/local/opt/ruby/bin:$PATH"
可以解决问题。
编辑-现在Rails出了问题,我会进一步更新。
我在更新路径后,运行了gem,它能正常工作了。
这个解决方案并不理想,因为它提供了两个版本的Ruby,因此当然也有两个版本的gem。
Last login: Fri Aug 9 16:02:48 on ttys001
have run /Users/apple/.bash_profile
~$ cd /usr/local/opt/ruby/bin
/usr/local/opt/ruby/bin$ ls
bundle bundler erb gem irb rake rdoc ri ruby
/usr/local/opt/ruby/bin$ echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:~/rubymac/rubyrailshelperscripts:/opt/X11/bin:/Users/apple/.vimpkg/bin:/usr/local/opt/fzf/bin
/usr/local/opt/ruby/bin$ which gem
/usr/bin/gem
/usr/local/opt/ruby/bin$ cd ~/
~$ /usr/local/opt/ruby/bin/ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin16]
~$ /usr/bin/ru
ruby runocc.d
~$ /usr/bin/ruby --version
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin16]
~$
irb
脚本,以便自动添加到命令行参数中。对于其他人来说,我的脚本位于C:\Ruby\1.9.3\bin\irb
,并在require 'irb'
语句之后添加了ARGV << "--noreadline"
。 - Mattalias irb='irb --noreadline'
- Dmitriy Budnik