当我运行 rails c
并在 irb 启动时按下向上键时,我可以看到我的应用程序在遇到 ruby-debug gem 的 debugger
命令后掉到 irb 时输入的最后一个命令。我不仅想清除这些命令,而且我希望 rails c
会提取我在上次 Rails 控制台 session 期间发出的最后命令。我认为它曾经这样做过,但我不确定发生了什么变化。如果有帮助,我在 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 -
)。
希望这些附加信息将帮助您确定根据需要设置系统所需的内容。
pry 动问题
我已经停止使用 debugger
并移至 pry-byebug
,其中包括 pry
gem。 Pry 是 IRB 的替代品,但也可以在它的侧面和内部使用。我能够提供上述更新的原因是我试图弄清楚如何将它们各自的历史分开。有关更多信息,请参阅 my answer 到 "why does pry history keep cloberring irb history?" 上的 SO 问题。我已经在那里包含了 Pry 的已知 Github 问题的链接以及我试图修复它。
最佳答案
我将您的问题解释为询问如何在 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
这些也可以在调试提示下工作,但不是持久的。
关于ruby-on-rails - 如何清除 rails 控制台历史记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4412401/