当我运行rails c
并在irb启动时按向上键时,我可以看到我在应用ruby-debug gem的debugger
命令后将我的应用程序删除为irb时输入的最后一个命令。我不仅要清除这些命令,而且如果rails c
将拉出我在上次rails控制台会话期间发出的最后一个命令,我希望如此。我认为它曾经这样做,但我不确定发生了什么变化。如果有帮助的话,我在Mac OS 10.6.5上使用ruby 1.8.7和rails 3.0.3。
Ray的answer在过渡期间帮助了我。最近我做了更多的挖掘,以了解更多并意识到存在许多相互矛盾的问题。
IRB会检查您是否有~/.irbrc
,如果没有,则会像Ray提到的那样回到/etc/irbrc
。但是,如果您使用rvm
,则有另一个要考虑~/.rvm/scripts/irbrc
的文件,如果您设置了~/.rvm/scripts/irbrc.rb
,则只会加载.rb
(请注意rvm_path
)您的ENV
(如果使用rvm
则应该使用。)
有趣的是,虽然~/.rvm/scripts/irbrc.rb
基于/etc/irbrc
,但它们并不相同,并且在某些方面有所不同。检测系统中使用哪一个的最明显的方法和最简单的方法是它们的历史文件名。如果正在使用/etc/irbrc
,则您的历史记录文件将为~/.irb_history
,其中rvm
为~/.irb-history
(注意:_
vs -
)。
希望这些附加信息可以帮助您确定设置系统所需的内容。
我已停止使用debugger
,并已转移到包含pry-byebug
gem的pry
。 Pry是IRB的替代品,但也可以在其旁边和内部使用。我能够提供上述更新的原因是因为我试图找出如何将各自的历史分开。有关详细信息,请参阅my answer上的"why does pry history keep cloberring irb history?"上的SO问题。我已经为Pry包含了已知的Github问题的链接,以及我尝试修复它。
答案 0 :(得分:9)
我将您的问题解释为询问如何在Rails控制台中打开历史记录并在Ruby调试器中关闭。如果不是这样,请澄清。
IRB,以及Rails控制台,从~/.irbrc
读取,或者如果不存在/etc/irbrc
,则启动并配置irb。您的历史记录通常写入~/.irb_history
,但这取决于irbrc
文件的内容。我的Mac OS X上的/etc/irbrc
设置为从irb写入历史记录,所以也许你创建了一个没有历史记录的本地.irbrc
,或者你可能有一个语法错误文件。
调试器在启动时读取名为.rdebugrc
的文件。您可以通过将此行添加到~/.rdebugrc
:
set history save off
将其重新打开:
set history save on
您还可以将调试输出设置为使用以下命令转到与irb读取不同的文件:
set history filename
这些也可以在调试提示符下工作,但不是持久的。
答案 1 :(得分:5)
答案 2 :(得分:0)
尽管我是Google提出的一个非常老的问题。 事实证明,RVM随时间略有变化。 目前,我的IRB历史记录(使用rvm)存储在这里:
user@host:~$ ls ~/.rvm/rubies/ruby-2.4.2/.irbrc*
/home/user/.rvm/rubies/ruby-2.4.2/.irbrc
/home/user/.rvm/rubies/ruby-2.4.2/.irbrc_history