У меня есть Ruby 2.3.0p0, установленный через rbenv, на OS X 10.11.4. В рамках IRB-сессии история работает нормально. Однако я не могу получить доступ к истории IRB через сеансы.
Я попробовал свою систему Ruby, 2.0.0p648, и история в IRB-сессиях работает нормально. Я попытался установить ту же самую версию Ruby через rbenv, и у нее также есть рабочая история.
Я сравнивал значения IRB.conf
между рабочим и нерабочим сеансом, и ничто не выглядит неуместным (хотя, как ни странно, irb/ext/save-history.rb является пустым файлом в обоих случаях).
Глядя на мой файл .irb_history, кажется, что он заменяется, а не прилагается, командами последнего сеанса. Я могу загрузить 2.0.0 IRB-сессию и прокручивать эти команды просто отлично.
Я пробовал ответы, перечисленные в история rbenv irb не сохраняет без успеха.
Я также пробовал выбранный ответ в истории irb не работает.
Мне пришлось изменить выбранный ответ, чтобы заменить метод #nitems. Это показало, что строки считываются из файла истории и нажимаются на Readline::HISTORY
. Однако проверка Readline::HISTORY
ничего не показывает.
Я могу взломать историю, добавив предыдущие строки из моей .irb_history в историю Readline через Readline.readline
и указав add_hist = true. Тем не менее, это определенно не правильный способ добавления предыдущих команд в Readline.
Я знаю, что могу переключиться на что-то вроде pry, но я хотел бы это понять. Любые предложения о том, почему команды не добавляются в Readline, и как это изменить?