Backspace и клавиши со стрелками не работают в IRB (консоль Git Bash) на компьютере с Windows

Я только что установил ruby ​​​​1.9.2 на машину с Windows, и Backspace или любые другие клавиши со стрелками не работают. Это происходит только тогда, когда я открываю IRB на консоли Git Bash. Но он отлично работает на консоли Windows. Любая помощь в этом?

Примечание. IRB нормально работал на обеих консолях с более ранними версиями ruby.


person Vineeth Pradhan    schedule 14.04.2011    source источник


Ответы (6)


Со мной случилось то же самое. Запуск irb с --noreadline решил мою проблему:

irb --noreadline
person Neno Ganchev    schedule 08.11.2011
comment
Это решение сработало как шарм. Я изменил свой скрипт irb, чтобы он автоматически добавлялся в аргументы командной строки. Для других мой сценарий был в C:\Ruby\1.9.3\bin\irb, и я добавил ARGV << "--noreadline" сразу после оператора require 'irb'. - person Matt; 02.05.2013
comment
Вы можете сделать его поведением по умолчанию с псевдонимом bash: alias irb='irb --noreadline' - person Dmitriy Budnik; 29.05.2013
comment
Это полезно, но на самом деле не решает проблему, по крайней мере, в моем случае. Всякий раз, когда я хочу выполнить простую операцию, это не тот путь. - person João Gouveia; 25.07.2019

Вы также можете отключить readline в ~/.irbrc

IRB.conf[:USE_READLINE] = false
person Bo Frederiksen    schedule 18.09.2013
comment
Ответ Нено выше не сработал, не знаю почему. Но добавление этого в .irbrc сработало для меня. Спасибо! - person Kishore Masand; 11.10.2013

Кажется, вы не установили readline во время компиляции ruby. Итак, установите readline, возможно, также readline-devel, а затем перекомпилируйте ruby.

person Cheng    schedule 24.06.2011
comment
Обычно он поставляется предварительно скомпилированным в версии для Windows. Непростая задача правильно перекомпилировать под платформу Windows. - person Matt; 02.05.2013
comment
У меня была такая же проблема в Fedora 30. После перекомпиляции она у меня работает. - person HarlemSquirrel; 16.05.2019

Как описано здесь https://groups.google.com/forum/#!topic/rubyinstaller/HgswOz1T-eE используйте следующую команду/псевдоним:

alias irb="ruby -S irb"

Если это не сработает, используйте вместо этого pry:

gem install pry
person konyak    schedule 29.01.2014

Установите гем rb-readline.

gem install rb-readline
person DoctorRu    schedule 31.12.2013
comment
Мне тоже не помогло. - person Cyberwiz; 02.02.2017
comment
После установки драгоценного камня его необходимо добавить либо в Gemfile, либо в require 'rb-readline'. - person HarlemSquirrel; 15.01.2019

Краткий ответ: мне пришлось сделать варочное обновление (очевидно, ситуация, по словам эксперта по рубинам, с которым я разговаривал, такова: «В транке есть новый гем по умолчанию, Reline, это запасной вариант readline».) . Потом новое окно и стрелочки в irb заработали. Затем sudo gem install pry, новое окно и pry сработали. ruby --version упал до 2.3, и мне пришлось выполнить brew install ruby, он сказал, что ruby ​​2.6 уже установлен, и сделать brew, переустановить ruby, и он сказал обновить путь, я сделал это, а затем все в порядке. рубин 2.6 установлен. редактировать - теперь рельсы сломаны .. я буду обновлять дальше.

Более развернутый ответ.

У меня была проблема с рубиновыми клавишами со стрелками irb, которые не работали,

~/blah$ irb
irb(main):001:0> ^[[A^[[D^[[B^[[C

Я на osx, и не думаю, что у меня была эта проблема несколько месяцев назад

а также была ошибка при запуске pry, pry<ENTER> it says "Reason: image not found - /usr/local/Cellar/ruby/2.5.0/lib/ruby/2.5.0/x86_64-darwin16/readline.bundle"

Пробовал brew link readline --force не помогло Пробовал irb --noreadline не помогло

Но мне помогло вот это от эксперта по рубинам — brew upgrade

По-видимому, ситуация, по словам эксперта по ruby, с которым я разговаривал, такова: «В транке есть новый гем по умолчанию, 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" вручную в начале каждого сеанса терминала работает.

редактировать - теперь рельсы сломаны, я буду обновлять дальше.

Я получил драгоценный камень для работы, когда я запустил его после обновления пути.

Это решение не идеально, поскольку дает две версии 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]
~$ 
person barlop    schedule 03.08.2019
comment
более краткий ответ - мне пришлось сделать варочное обновление (очевидно, ситуация, по словам эксперта по рубинам, с которым я разговаривал, заключается в том, что в транке есть новый гем по умолчанию, Reline, это запасной вариант readline). затем новое окно и клавиши со стрелками в ирб работал. Затем sudo gem install pry, новое окно и pry сработали. ruby --version упал до 2.3, и мне пришлось выполнить brew install ruby, он сказал, что ruby ​​2.6 уже установлен, и сделать brew, переустановить ruby, и он сказал обновить путь, я сделал это, а затем все в порядке. рубин 2.6 установлен. - person barlop; 03.08.2019