häufig bündig irb Geschichte Datei
Frage
irb kann Befehl Geschichte in eine Datei schreiben, aber es funktioniert nur, wenn dies Ihre irb Sitzung beendet.
Ich möchte meine Befehl Geschichte häufiger schreiben. So oft wie bei jedem Befehl (wie Shell Geschichte), aber es muss nicht so oft sein
Gibt es eine .irbrc Einstellung dafür? Oder muss ich die irb Quelle hacken ...
Lösung
Nachdem auf irb manches Mal, viel Glück mit einer sauberen Lösung gehackt. Stattdessen würde ich RIPL , eine irb Alternative empfehlen. Standardmäßig speichert sie Geschichte intelligenter (das heißt, auch wenn Sie abrupt beenden heraus mit gedrückter Ctrl-D).
Wenn Sie nach jedem Befehl zu schreiben Geschichte wollen, ist es einfach, mit RIPL, da es gebaut ist mit Plugins erweitert werden:
# add to your ~/.riplrc
module Ripl::ImmediateHistory
# write to history after every eval
def eval_input(input)
super
File.open(history_file, 'a') {|f| f.puts input }
end
# disable writing to history when ripl exits
def write_history; end
end
Ripl::Shell.send :include, Ripl::ImmediateHistory
Andere Tipps
Von hier: http://blog.nicksieger.com/articles / 2006/04/23 / Tweaking-irb
module Readline
module History
LOG = "#{ENV['HOME']}/.irb-history"
def self.write_log(line)
File.open(LOG, 'ab') {|f| f << "#{line}
"}
end
def self.start_session_log
write_log("
# session start: #{Time.now}
")
at_exit { write_log("
# session stop: #{Time.now}
") }
end
end
alias :old_readline :readline
def readline(*args)
ln = old_readline(*args)
begin
History.write_log(ln)
rescue
end
ln
end
end
Readline::History.start_session_log