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