Railsコンソールの履歴をクリアするにはどうすればよいですか
概要
Rails c を実行し、irb の起動時に上キーを押すと、ruby-debug gem のデバッガー コマンドに遭遇した後、アプリが irb にドロップされたときに入力した最後のコマンドが表示されます。これらのコマンドを削除するだけでなく、最後の Rails コンソール セッション中に発行した最後のコマンドを Rails c が取得できるようにしたいと考えています。以前はそうしていたように思いますが、何が変わったのかはわかりません。私は Mac OS 10.6.5 で Ruby 1.8.7 と Rails 3.0.3 を使用しています。それが役立つ場合は。
レイの答えが当面の助けになりました。最近、さらに詳しく調べてみたところ、矛盾する問題が数多くあることがわかりました。
Ray が述べたように、IRB は ~/.irbrc があるかどうかをチェックし、ない場合は /etc/irbrc にフォールバックします。ただし、rvm を使用している場合、ENV に rvm_path が設定されている場合、~/.rvm/scripts/irbrc を考慮する別のファイルがあり、これは ~/.rvm/scripts/irbrc.rb (.rb に注意してください) をロードするだけです ( RVM を使用する場合はそうする必要があります)。
興味深いことに、~/.rvm/scripts/irbrc.rb は /etc/irbrc に基づいていますが、それらは同じではなく、いくつかの点で異なります。システムでどれが使用されているかを検出する最も明白で簡単な方法は、履歴ファイルの名前です。 /etc/irbrc が使用されている場合、履歴ファイルは ~/.irb_history になりますが、rvm の場合は ~/.irb-history になります (注: _ と -)。
この追加情報が、システムを希望どおりにセットアップするために何が必要かを判断するのに役立つことを願っています。
それ以来、私はデバッガーの使用をやめ、pry gem を含む pry-byebug に移行しました。 Pry は IRB の代替手段ですが、IRB と併用したり内部で使用したりすることもできます。上記のアップデートを提供できた理由は、それぞれの歴史を分離しておく方法を見つけようとしていたからです。詳細については、SO の質問に対する私の回答「なぜ pry 履歴が irb 履歴を妨害し続けるのか?」を参照してください。そこには、Pry の既知の Github 問題と、それを修正する試みへのリンクが含まれています。
解決策
あなたの質問は、Rails コンソールで履歴をオンにし、Ruby デバッガーで履歴をオフにする方法を尋ねているものと解釈します。これが真実でない場合は、明確にしてください。
IRB、ひいては Rails Console は、~/.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
これらはデバッグ プロンプトからも機能しますが、永続的ではありません。