When I run rails c
and press the up key when irb starts up, I can see the last commands I entered when my app dropped to irb after encountering a debugger
command for the ruby-debug gem. I would not only like to clear these commands out, but I would like it if rails c
would pull the last commands I issued during my last rails console session. I think it used to do this but I'm not sure what has changed. I'm on ruby 1.8.7 and rails 3.0.3 on Mac OS 10.6.5 if that helps.
Ray's answer helped me out in the interim. Recently I did a bit more digging to find out more and realized that there are a number of conflicting issues.
IRB checks if you have a ~/.irbrc
and if not falls back to /etc/irbrc
as Ray mentioned. However, if you are using rvm
there is another file to consider ~/.rvm/scripts/irbrc
which just loads up ~/.rvm/scripts/irbrc.rb
(note the .rb
) if you have rvm_path
set in your ENV
(you should if using rvm
).
Interestingly while ~/.rvm/scripts/irbrc.rb
was based off of /etc/irbrc
they are not the same and differ in a few ways. The most obvious way and easiest way to detect which one is being used on your system is their history file's name. If /etc/irbrc
is being used your history file will be ~/.irb_history
where as rvm
's is ~/.irb-history
(Note: _
vs -
).
Hopefully this additional information will help you determine what you need to setup your system as you would like.
I've since stopped using debugger
and have moved to pry-byebug
which includes the pry
gem. Pry is an alternative to IRB but can also be used along side and within it. The reason I was able to provide the above update is because I was trying to figure out how to keep their respective histories separate. For more information please see my answer to the SO question on "why does pry history keep cloberring irb history?". I've included links there to the known Github issue for Pry as well as my attempt to fix it.
I interpret you question as asking how to turn history on in the Rails Console and off in the Ruby debugger. If this isn't true, please clarify.
IRB, and by extension, the Rails Console, read from ~/.irbrc
, or if that doesn't exist, /etc/irbrc
, to startup and configure irb. Your history is typically written to ~/.irb_history
, but that is dictated by the contents of your irbrc
file. The /etc/irbrc
on my Mac OS X is set up to write the history from irb, so perhaps you've created a local .irbrc
that doesn't have history, or perhaps you have a syntax error in that file.
The debugger reads a file called .rdebugrc
on startup. You can turn off history in debug by adding this line to ~/.rdebugrc
:
set history save off
Turn it back on with:
set history save on
You could also set your debug output to go to a different file than irb reads from with the command:
set history filename
These also work from the debug prompt, but aren't persistent.