13

当我rails c在 irb 启动时运行并按向上键时,我可以看到我在遇到debuggerruby​​-debug gem 的命令后我的应用程序下降到 irb 时输入的最后一个命令。我不仅想清除这些命令,而且我希望它rails c能够拉出我在上一次 rails 控制台会话期间发出的最后一条命令。我认为它曾经这样做,但我不确定发生了什么变化。如果有帮助,我在 Mac OS 10.6.5 上使用 ruby​​ 1.8.7 和 rails 3.0.3。

更新

Ray回答在此期间帮助了我。最近,我进行了更多挖掘以了解更多信息,并意识到存在许多相互矛盾的问题。

IRB 检查你是否有一个,如果没有,如 Ray 所提到的那样~/.irbrc回退。/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包含prygem 的位置。Pry 是 IRB 的替代品,但也可以在其旁边和内部使用。我能够提供上述更新的原因是因为我试图弄清楚如何将它们各自的历史分开。有关更多信息,请参阅我对“为什么 pry history 不断破坏 irb 历史?”的 SO 问题的回答。. 我已经在此处包含了指向已知 Github 问题的 Pry 以及我尝试修复它的链接。

4

3 回答 3

9

我将您的问题解释为询问如何在 Rails 控制台中打开历史记录并在 Ruby 调试器中关闭。如果这不是真的,请澄清。

IRB,以及扩展的 Rails 控制台,从 读取~/.irbrc,或者如果不存在,/etc/irbrc则启动和配置 irb。您的历史记录通常写入~/.irb_history,但这是由irbrc文件的内容决定的。在 /etc/irbrc我的 Mac OS X 上设置为从 irb 写入历史记录,因此您可能创建了一个.irbrc没有历史记录的本地文件,或者您在该文件中有语法错误。

调试器读取启动时调用的文件.rdebugrc。您可以通过将此行添加到以下内容来关闭调试中的历史记录~/.rdebugrc

set history save off

使用以下命令重新打开它:

set history save on

您还可以使用以下命令将调试输出设置为与 irb 读取的文件不同的文件:

set history filename

这些也可以在调试提示符下工作,但不是持久的。

于 2011-06-29T07:53:35.967 回答
5

有许多工具可以帮助改善 irb 体验。邦德希尔布 很有希望。

这是Irb 工具的综合列表以及直接编辑 .irbrc 文件的一些技巧

希望这有帮助!

于 2011-05-18T02:48:17.937 回答
0

虽然我通过谷歌得到了一个非常古老的问题。事实证明,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
于 2018-07-05T07:02:58.200 回答